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