Транзакции применяются для того, чтобы выполнить последовтельность операций (выполнять одну операцию за другой).
Если при выполнении какой-то операции происходит ошибка, то все предыдущии операции откатываются (отменяются).
То есть или выполнятся все операции без ошибок или не выполнится ни одной операции (если произошла хоть одна ошибка).
Управление транзакциями:
C#
Напишем код в файле Program.cs
using System;
// для SQL ADO.NET
using Microsoft.Data.SqlClient;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// connection string
string connectionString = @"Data Source=EVGENI;Initial Catalog=MyDatabase1;Integrated Security=True";
// connect to db
using (SqlConnection connection = new SqlConnection(connectionString))
{
// open db
connection.Open();
// создаем транзакцию
SqlTransaction transaction = connection.BeginTransaction();
SqlCommand command = connection.CreateCommand();
command.Transaction = transaction;
try
{
// операция 1
command.CommandText = "INSERT INTO Books (Name, Price) VALUES('На море', 120)";
command.ExecuteNonQuery();
// операция 2
command.CommandText = "INSERT INTO Books (Name, Price) VALUES('Читаем книгу', 230)";
command.ExecuteNonQuery();
// Завершение транзакции
transaction.Commit();
}
catch (Exception ex)
{
// отмена транзакции
transaction.Rollback();
}
}
}
}
}