Sobes.tech
Junior — Middle

Van tapasztalata adatbázis-kezelő rendszerekben tranzakciók használatában?

sobes.tech MI

Válasz az MI-től

Igen, C#-ban az adatbázis tranzakciókkal való munkához gyakran használják a TransactionScope osztályt vagy a konkrét adatbázis szolgáltató által biztosított tranzakciókat, például a SQL Server esetében a SqlTransaction-t.

A tranzakció lehetővé teszi, hogy több műveletet egy egységbe foglaljon az adatbázisban, amely vagy teljes egészében végrehajtódik, vagy hiba esetén teljesen visszavonásra kerül, ezáltal biztosítva az adatok integritását.

TransactionScope példával:

using (var scope = new TransactionScope())
{
    using (var connection = new SqlConnection(connectionString))
    {
        connection.Open();

        var command1 = new SqlCommand("INSERT INTO Table1 ...", connection);
        command1.ExecuteNonQuery();

        var command2 = new SqlCommand("UPDATE Table2 ...", connection);
        command2.ExecuteNonQuery();
    }

    scope.Complete(); // A tranzakció megerősítése
}

Ha a blokkban kivétel történik és nem hívják meg a scope.Complete()-et, akkor minden változtatás visszavonásra kerül.