Sobes.tech
Back to questions
Junior — Middle
71

Есть ли у вас опыт использования транзакций в системах управления базами данных?

Companies where asked
Почтатех

Answer from AI

sobes.tech 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() не будет вызван, все изменения откатятся.