Junior — Middle
Ar turite patirties naudojant transakcijas duomenų bazių valdymo sistemose?
sobes.tech AI
Atsakymas iš AI
Taip, C# dažnai naudojama TransactionScope klasė arba konkretaus duomenų bazės teikėjo siūlomos transakcijos, pavyzdžiui, SqlTransaction SQL Server'io atveju.
Transakcija leidžia sujungti kelias operacijas duomenų bazėje į vieną visumą, kuri arba įvykdoma visiškai, arba, įvykus klaidai, visiškai atšaukiama, užtikrinant duomenų vientisumą.
Pavyzdys naudojant TransactionScope:
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(); // Patvirtiname transakciją
}
Jei blokas sugenda ir scope.Complete() nebus iškviesta, visi pakeitimai bus atšaukti.