dir.by  
  Поиск  
Программирование, разработка, тестирование
ADO.NET (работа с базой данных на C#)
Транзакции в ADO.NET | База данных в C# консольном приложении
  Посмотрели 5237 раз(а)    
 Транзакции в ADO.NET | База данных в C# консольном приложении 
последнее обновление: 22 июля 2025
Транзакции применяются для того, чтобы выполнить последовтельность операций (выполнять одну операцию за другой).
Если при выполнении какой-то операции происходит ошибка, то все предыдущии операции откатываются (отменяются).
То есть или выполнятся все операции без ошибок или не выполнится ни одной операции (если произошла хоть одна ошибка).

Управление транзакциями:
Действие
Пример
 
Создание транзакции
SqlTransaction transaction = connection.BeginTransaction();
 
Операция 1 с базой данных


Операция2 с базой данных


...
command.CommandText = "INSERT INTO Books (Name, Price) VALUES('На море', 120)";
command.ExecuteNonQuery();

command.CommandText = "INSERT INTO Books (Name, Price) VALUES('Читаем книгу', 230)";
command.ExecuteNonQuery();

...
 
Коммит (успешное завершение) транзакции
transaction.Commit();
 
Откат (отмена транзакции)
transaction.Rollback();
Шаг 1. Создаем новое приложение
Шаг 2. Напишем код
  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();
                    }
               }
          }
     }
}
 
← Предыдущая тема
Хранимые процедуры в ADO.NET | C#
 
Следующая тема →
Читаем картинку из базы данных и сохраняем в файл | ADO.NET, C#
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

  Объявления  
  Объявления  
 
Что такое ADO.NET?
Создадим ADO.NET консольное приложение (C#, база данных)
Работа с данными в ADO.NET
Читаем данные (select) из Базы Данных используя SqlCommand и SqlDataReader в ADO.NET C#. Соответствие типов Базы данных
Читаем данные (select) из Базы Данных используя SqlDataAdapter и DataSet | ADO.NET, C#
Получение скалярного (одного) значения: Count, Min, Max, Sum и т.д. | ADO.NET, C#
Добавляем данные (insert into) в Базу Данных используя SqlCommand | ADO.NET, C#
Меняем данные (update) в Базе Данных используя SqlCommand | ADO.NET, C#
Удаляем данные (delete) в Базе Данных используя SqlCommand | ADO.NET, C#
Хранимые процедуры в ADO.NET
Хранимые процедуры в ADO.NET | C#
Транзакции в ADO.NET
Транзакции в ADO.NET | База данных в C# консольном приложении
Читаем картинку из базы данных ADO.NET
Читаем картинку из базы данных и сохраняем в файл | ADO.NET, C#
Дополнительные темы, вопросы
Строка соединения с базой данных | ADO.NET, C#

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика