Упражнение 3. Выполнение транзакций
Транзакция состоит из одной команды или группы команд, которые выполняются как пакет. Транзакции позволяют объединить несколько операций в одну единицу работы. Если в какой-либо точке транзакции возникает ошибка, может быть выполнен откат всех обновлений к их состоянию до начала транзакции. Для выполнения локальной (состоит из одной фазы и обрабатывается непосредственно базой данных) транзакции каждый поставщик данных платформы .NET Framework имеет свой собственный объект Transaction.
В этом упражнении инициируется транзакция с помощью метода BeginTransaction объекта Connection. После начала транзакции при помощи свойства Transaction объекта Command к ней прикрепляется команда и затем в зависимости от успеха или ошибки компонентов транзакция фиксируется или откатывается.
1. Откройте приложение, построенное в предыдущем упражнении.
2. Добавьте на форму кнопку Button. Для свойства Text укажите значение Транзакция.
3. Реализуйте в обработчике события Click новой кнопки следующую функциональность:
a. Создайте объект соединения – объект класса OleDbConnection, назначьте строку подключения и откройте соединение:
OleDbConnection connection = new OleDbConnection(testConnect);
connection.Open();
b. Вызовите метод BeginTransaction() объекта соединения OleDbConnection для отметки начала транзакции. Данный метод возвращает ссылку на транзакцию. Эта ссылка назначается объектам OleDbCommand, прикрепленным к транзакции:
OleDbTransaction OleTran = connection.BeginTransaction();
|
|
c. Создайте объект OleDbCommand, с помощью которого будет выполняться SQL-команда:
OleDbCommand command = connection.CreateCommand();
d. Свяжите транзакцию с командой. Для этого объект транзакции поместите в свойство Transaction объекта команды:
command.Transaction = OleTran;
e. В try-блоке реализуйте следующее: свойству commandText укажите запрос, который нужно выполнить (команда INSERT, которая вставляет в таблицу Products название нового продукта). Для выполнения команд, не возвращающих результатов, а изменяющих данные или вставляющих данные в таблицы, используйте метод ExecuteNonQuery(). Для сохранения изменений, сделанных внутри транзакции, вызовите метод Commit() объекта OleDbTransaction. Итоговый код для вставки двух строк будет следующим:
try
{
command.CommandText =
"INSERT INTO Products (ProductName) VALUES('Wrong size')";
command.ExecuteNonQuery();
command.CommandText =
"INSERT INTO Products (ProductName) VALUES('Wrong color')";
command.ExecuteNonQuery();
OleTran.Commit();
MessageBox.Show("Both records were written to database");
}
f. В catch-обработчике вызовите окно с сообщением об ошибке в случае ее возникновения:
catch (Exception ex)
{
MessageBox.Show(ex.Message);
|
|
...
}
g. В этом же блоке catch вызовите метод Rollback() для отмены изменений, т. е. отката транзакции. Метод вызовите во вложенном блоке try:
try
{
OleTran.Rollback();
}
catch (Exception exRollback)
{
MessageBox.Show(exRollback.Message);
}
h. Закройте соединение:
connection.Close();
4. Запустите и протестируйте приложение. По клику кнопки Транзакция в таблицу продуктов добавляются новые строки. Проверьте это с помощью кнопки Список продуктов.
5. Внесите ошибку в код вставки строк в таблицу, например, неправильное название столбца или таблицы. Повторите запись строк в таблицу и убедитесь в откате транзакции.
Практическое занятие 3. Подключение к данным с помощью IDE
На практике при разработке приложений, предназначенных для работы с базой данных удобно использовать возможности интегрированной среды разработки и компоненты панели Toolbox.
Упражнение 1. Создание подключения к БД в Server Explorer
В этом упражнении описывается процесс создания узла Data Connection в Server Explorer.
1. Создайте новое WinForms-приложение (назовите его DSConnect).
|
|
2. С помощью меню View откройте окно Server Explorer.
3. Щелкните правой кнопкой мыши узел Data Connections и выберите команду Add Connection. При первом подключении появится диалоговое окно Change Data Source.
4. В окне Data source выберите источник данных – Microsoft SQL Server. В соответствии с выбранным источником данных, выпадающий список Data provider заполняется подходящими провайдерами данных. Выберите .NET Framework Data Provider for SQL Server.
5. В окне Add Connection в поле Server name выберите свой сервер или введите имя вручную.
6. Выберите метод аутентификации для доступа к серверу – Windows.
7. Выберите требуемую базу данных – Northwind. Проверьте подключение и в случае удачного исхода нажмите OK.
8. После создания подключения просмотрите его свойства в окне Properties.
Дата добавления: 2019-02-26; просмотров: 189; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!