Sobes.tech
Junior — Middle

Ma'lumotlar bazasi boshqaruv tizimlarida tranzaktsiyalarni ishlatish bo'yicha tajribangiz bormi?

sobes.tech AI

AIdan javob

Ha, C# da veritabanlari bilan ishlashda ko'pincha TransactionScope sinfi yoki ma'lumotlar bazasi provayderi tomonidan taqdim etilgan tranzaktsiyalar, masalan, SQL Server uchun SqlTransaction, ishlatiladi.

Tranzaksiya ma'lumotlar bazasidagi bir nechta operatsiyalarni yagona butunlikka birlashtirish imkonini beradi, bu yoki to'liq bajariladi yoki xatolik yuz berganda to'liq bekor qilinadi, ma'lumotlarning yaxlitligini ta'minlash uchun.

TransactionScope bilan misol:

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(); // Tranzaksiyani tasdiqlash
}

Agar blokda istisno yuz bersa va scope.Complete() chaqirilmasa, barcha o'zgarishlar bekor qilinadi.