Sobes.tech
Junior — Middle

Имали ли сте опит с използването на транзакции в системи за управление на бази данни?

sobes.tech AI

Отговор от AI

Да, в C# за работа с транзакции в базите данни често се използва класът TransactionScope или транзакции, предоставени от конкретния доставчик на базата данни, например SqlTransaction за SQL Server.

Транзакцията позволява да се групират няколко операции в базата данни в едно цяло, което или се изпълнява напълно, или при грешка се отменя изцяло, осигурявайки цялостността на данните.

Пример с използване на 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(); // Потвърждаваме транзакцията
}

Ако в блока възникне изключение и scope.Complete() не бъде извикано, всички промени ще бъдат отменени.