Junior — Middle
Máte skúsenosti s používaním transakcií v systémoch správy databáz?
sobes.tech AI
Odpoveď od AI
Áno, v C# sa pri práci s transakciami v databázach často používa trieda TransactionScope alebo transakcie poskytované konkrétnym poskytovateľom databázy, napríklad SqlTransaction pre SQL Server.
Transakcia umožňuje zoskupiť niekoľko operácií v databáze do jedného celku, ktorý buď prebehne úplne, alebo pri chybe je úplne vrátený, čím sa zabezpečí integrita dát.
Príklad s 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(); // Potvrdenie transakcie
}
Ak v bloku dôjde k výnimke a scope.Complete() nebude zavolané, všetky zmeny budú vrátené späť.