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