Упражнение 3. Создание объектов DataAdapter



Объекты DataAdapter содержат помимо сведений о подключении, команды, необходимые для выборки и обновления данных в базе данных, а также для заполнения объектов DataSet и DataTable. Объекты DataAdapter можно создавать визуально, используя Data Adapter Configuration Wizard (Мастер настройки адаптера данных) или программно, создав экземпляр требуемого адаптера провайдера и передав конструктору предложение SELECT и допустимый объект Connection.

В этом упражнении показывается процесс создания объектов DataAdapter и работа с ними.

1. Создайте новое WinForms-приложение (назовите его DataAdapterWizard).

2. Добавьте (если ранее не был добавлен) на панель инструментов требуемый для дальнейшей работы компонент SqlDataAdapter.

3. Перенесите на форму объект SqlDataAdapter, откроется Data Adapter Configuration Wizard (Мастер настройки адаптера данных).

4. На странице Choose Your Data Connection (Выбор подключения базы данных) выберите подключение к БД Northwind.

5. На странице Choose a Command Type (Выбор типа команды) оставьте настройку по умолчанию (использовать инструкции SQL).

6. На странице Generate the SQL statement (Создание инструкций SQL) введите следующую инструкцию:

SELECT * FROM Customers

7. Нажмите Next (Далее) и изучите результаты работы мастера. Нажмите Finish (Готово) для завершения работы мастера и добавления SqlDataAdapter к форме.

8. Сгенерируйте типизированный DataSet, основанный на настроенном адаптере, для чего в меню Data (Данные) выберите команду Generate DataSet (Создать набор данных). Обратите внимание, что выбран настроенный адаптер.

9. Для нового набора данных введите имя NorthwindDataSet и нажмите OK.

10. Перенесите DataGridView на форму. Сделайте так, чтобы компонент занимал верхнюю половину формы.

11. Создайте обработчик события Load формы.

12. В обработчике загрузки формы:

a. Настройте DataGridView для отображения таблицы клиентов:

dataGridView1.DataSource = northwindDataSet1.Customers;

b. Вызовите метод Fill объекта DataAdapter для загрузки клиентов данными:

sqlDataAdapter1.Fill(northwindDataSet1.Customers);

13. Запустите приложение проверьте, что требуемая таблица появляется в сетке.

10. Добавьте на форму кнопку и установите свойству (Name) значение UpdateButton, свойству TextSave Change.

14. В обработчике события Click вызовите метод адаптера данных Update для сохранения изменений в базе данных:

sqlDataAdapter1.Update(northwindDataSet1);

15.  Запустите приложение. Добавьте новую информацию в таблицу. В поле CustomerID введите WERTY, в остальные поля по своему усмотрению. Сохраните изменения и закройте приложение. Запустите приложение и проверьте наличие добавленной строки.

Обработка событий DataAdapter

 Объекты DataAdapter вызывают несколько событий, которые могут использоваться при выполнении операций по отношению к источнику данных:

RowUpdating – создается после каждого DataRow во время обновления;

RowUpdated – создается перед каждым DataRow во время обновления;

FillError – создается при возникновении ошибки во время выполнения Fill.

1. Создайте обработчик события RowUpdating и реализуйте следующую функциональность:

a. Создайте экземпляр CustomerRow и присвойте ему изменяемую строку:

NorthwindDataSet.CustomersRow CustRow = (NorthwindDataSet.CustomersRow)e.Row;

b. Отобразите диалоговое окно для подтверждения обновления:

DialogResult response = MessageBox.Show("Continue updating " + CustRow.CustomerID.ToString() +

           "?", "Continue Update?", MessageBoxButtons.YesNo);

c. Реализуйте отмену обновления, если пользователь выбрал Нет:

if (response == DialogResult.No)

       {

           e.Status = UpdateStatus.SkipCurrentRow;

       }

2. Создайте обработчик события RowUpdated и реализуйте следующую функциональность:

a. Создайте экземпляр CustomerRow и присвойте ему изменяемую строку:

NorthwindDataSet.CustomersRow CustRow = (NorthwindDataSet.CustomersRow)e.Row;

MessageBox.Show(CustRow.CustomerID.ToString() + " has been updated");

b. Реализуйте сброс таблицы после обновления строки для отражения изменений:

northwindDataSet1.Customers.Clear();

sqlDataAdapter1.Fill(northwindDataSet1.Customers);

3. Создайте обработчик события FillError и реализуйте следующую функциональность:

a. Отобразите диалоговое окно для реагирования на ошибку:

DialogResult response = MessageBox.Show("The following error occurred while Filling the DataSet: "+ e.Errors.Message.ToString() +

 " Continue attempting to fill?", "FillError Encountered", MessageBoxButtons.YesNo);

b. Реализуйте попытку продолжения, если пользователь выбрал Да:

if (response == DialogResult.Yes)

       {

           e.Continue = true;

       }

       else

       {

           e.Continue = false;

       }

4. Запустите приложение протестируйте его, изменяя значения в записях таблицы. Обратите внимание, что можно индивидуально обработать каждую конкретную строку, которую адаптер пытается обновить.


Дата добавления: 2019-02-26; просмотров: 273; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!