books-read.com
books-read.com » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Добавить книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю в приложение ЧИТАТЬ КНИГУ ОФЛАЙН в приложении ios/android
Перейти на страницу:

  IDbConnection Connection { get; }

  IsolationLevel IsolationLevel { get; }

  void Commit();

  void Rollback();

}

Обратите внимание на свойство

Connection
, возвращающее ссылку на объект подключения, который инициировал текущую транзакцию (как вы вскоре увидите, объект транзакции получается из заданного объекта подключения). Метод
Commit()
вызывается, если все операции в базе данных завершились успешно, что приводит к сохранению в хранилище данных всех ожидающих изменений. И наоборот, метод
Rollback()
можно вызвать в случае генерации исключения времени выполнения, что информирует СУБД о необходимости проигнорировать все ожидающие изменения и оставить первоначальные данные незатронутыми.

На заметку! Свойство

IsolationLevel
объекта транзакции позволяет указать, насколько активно транзакция должна защищаться от действий со стороны других параллельно выполняющихся транзакций. По умолчанию транзакции полностью изолируются вплоть до их фиксации.

Помимо членов, определенных в интерфейсе

IDbTransaction
, тип
SqlTransaction
определяет дополнительный член под названием
Save()
, который предназначен для определения точек сохранения. Такая концепция позволяет откатить отказавшую транзакцию до именованной точки вместо того, чтобы осуществлять откат всей транзакции. При вызове метода
Save()
с использованием объекта
SqlTransaction
можно задавать удобный строковый псевдоним, а при вызове
Rollback()
этот псевдоним можно указывать в качестве аргумента для выполнения частичного отката. Вызов
Rollback()
без аргументов приводит к отмене всех ожидающих изменений.

Добавление метода транзакции в inventoryDal

Давайте посмотрим, как работать с транзакциями ADO.NET программным образом. Начните с открытия созданного ранее проекта библиотеки кода

AutoLot.Dal
и добавьте в класс
InventoryDal
новый открытый метод по имени
ProcessCreditRisk()
, предназначенный для работы с кредитными рисками. Метод будет искать клиента, в случае нахождения поместит его в таблицу
CreditRisks
и добавит к фамилии метку "(Credit Risk)".

public void ProcessCreditRisk(bool throwEx, int customerId)

{

  OpenConnection();

  // Найти имя текущего клиента по идентификатору.

  string fName;

  string lName;

  var cmdSelect = new SqlCommand(

    "Select * from Customers where Id = @customerId",

    _sqlConnection);

  SqlParameter paramId = new SqlParameter

  {

    ParameterName = "@customerId",

    SqlDbType = SqlDbType.Int,

    Value = customerId,

    Direction = ParameterDirection.Input

  };

  cmdSelect.Parameters.Add(paramId);

  using (var dataReader = cmdSelect.ExecuteReader())

  {

    if (dataReader.HasRows)

    {

      dataReader.Read();

      fName = (string) dataReader["FirstName"];

      lName = (string) dataReader["LastName"];

    }

    else

    {

      CloseConnection();

      return;

    }

  }

  cmdSelect.Parameters.Clear();

  // Создать объекты команды, представляющие каждый шаг операции.

  var cmdUpdate = new SqlCommand(

    "Update Customers set LastName = LastName + ' (CreditRisk) '

     where Id = @customerId", 
_sqlConnection);

  cmdUpdate.Parameters.Add(paramId);

  var cmdInsert = new SqlCommand(

     "Insert Into CreditRisks (CustomerId,FirstName, LastName)

      Values( @CustomerId, @
FirstName, @LastName)", 
_sqlConnection);

  SqlParameter parameterId2 = new SqlParameter

  {

    ParameterName = "@CustomerId",

    SqlDbType = SqlDbType.Int,

    Value = customerId,

    Direction = ParameterDirection.Input

  };

  SqlParameter parameterFirstName = new SqlParameter

  {

    ParameterName = "@FirstName",

    Value = fName,

    SqlDbType = SqlDbType.NVarChar,

    Size = 50,

    Direction = ParameterDirection.Input

  };

  SqlParameter parameterLastName = new SqlParameter

  {

    ParameterName = "@LastName",

    Value = lName,

    SqlDbType = SqlDbType.NVarChar,

    Size = 50,

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - на сайте онлайн книг books-read.com Вы можете читать полные версии книг автора в одном месте.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор books-read.com


Прокомментировать
Подтвердите что вы не робот:*