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.