Junior — Middle
Máte zkušenosti s používáním transakcí v systémech správy databází?
sobes.tech AI
Odpověď od AI
Ano, v C# se při práci s transakcemi v databázích často používá třída TransactionScope nebo transakce poskytované konkrétním poskytovatelem databáze, například SqlTransaction pro SQL Server.
Transakce umožňuje seskupit několik operací v databázi do jednoho celku, který buď proběhne úplně, nebo při chybě je úplně vrácen, čímž se zajišťuje integrita dat.
Pří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(); // Potvrzení transakce
}
Pokud dojde k výjimce v bloku a scope.Complete() není zavoláno, všechny změny budou vráceny zpět.