Sobes.tech
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.