Упражнение 6. Создание и использование объектов DataView



В этом упражнении рассматривается использование объектов DataView, которые позволяют работать с объектами DataTable и обеспечивают возможность сортировки, фильтрации и изменения данных в связанном объекте DataTable.

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

2. На поверхность формы проекта перенесите ЭУ DataGridView, свойству (Name) укажите значение CustomersGrid. Сделайте так, чтобы компонент занимал левую половину формы.

3. Добавьте на форму два элемента TextBox и установите следующие свойства:

a. Первый:

(Name) – SortTextBox,

TextCustomerID

b. Второй:

(Name) – FilterTextBox,

TextCity = 'London'

4. Добавьте на форму две кнопки и установите следующие свойства:

a. Первая:

(Name) – SetDataViewPropertiesButton,

TextSetDataViewProperties

b. Вторая:

(Name) – AddRowButton,

TextA dd Row

5. Создайте новый источник данных с помощью команды Add New Data Source (Добавить новый источник данных) в меню Data (Данные):

a. Тип источника – Database,

b. Модель данных – DataSet (Набор данных),

c. Подключение – Northwind,

d. Объекты базы данных – таблицы Customers и Orders.

e. Имя источника оставьте по умолчанию.

6. Постройте проект. Проверьте, что на панели Toolbox появились компоненты CustomersTableAdapter, OrdersTableAdapter и NorthwindDataSet. Перенесите все эти компоненты на форму.

7. В классе формы создайте экземпляры DataView для таблиц Customers и Orders:

   DataView customersDataView;

   DataView ordersDataView;

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

a. Загрузите данные в таблицы Customers и Orders:

       customersTableAdapter1.Fill(northwindDataSet1.Customers);

       ordersTableAdapter1.Fill(northwindDataSet1.Orders);

b. Настройте объекты DataSet для использования таблиц Customers и Orders:

       customersDataView = new DataView(northwindDataSet1.Customers);

       ordersDataView = new DataView(northwindDataSet1.Orders);

c. Присвойте исходный порядок сортировки в DataView:

       customersDataView.Sort = "CustomerID";

d. Настройте CustomerGrid для отображения CustomerDataView:

       CustomersGrid.DataSource = customersDataView;

9. Запустите приложение. При загрузке формы данные CustomerDataView отобразятся в сетке. Закройте приложение.

10. В обработчике события Click кнопки Set Data View реализуйте сортировку и фильтрацию данных в зависимости от значений, введенных в элементы SortTextBox и FilterTextBox соответственно:

       customersDataView.Sort = SortTextBox.Text;

       customersDataView.RowFilter = FilterTextBox.Text;

11. Запустите приложение и протестируйте добавленную функциональность. Отобразите данные, соответствующие городу City = ' Madrid’.

12.  Реализуйте в обработчике события Click кнопки Add Row следующую функциональность:

a. Создайте новую строку:

       DataRowView newCustomRow = customersDataView.AddNew();

b. Присвойте значения столбцам CustomerID и CompanyName значения:

       newCustomRow["CustomerID"] = "WINGT";

       newCustomRow["CompanyName"] = "Wing Tip Toys";

c. Укажите явное окончание редактирования:

       newCustomRow.EndEdit();

13. Добавьте еще одну кнопку (например, под кнопкой Add Row) и установите свойству (Name) значение GetOrdersButton, свойству TextGet Orders.

14. Добавьте новый компонент DataGridView так, чтобы он занимал правую половину формы, свойству (Name) укажите значение OrdersGrid.

15. Реализуйте в обработчике события Click кнопки Get Orders следующую функциональность:

a. Получите CustomerID для строки, выбранной в CustomersGrid:

       string selectedCustomerID =

(string)CustomersGrid.SelectedCells[0].OwningRow.Cells["CustomerID"].Value;

b. Создайте DataRowView и присвойте ему выбранную строку:

       DataRowView selectedRow =

customersDataView[customersDataView.Find(selectedCustomerID)];

c. Вызовите метод CreateChildView() для перемещения по записям и создания нового DataView, основанного на связанных записях:

       ordersDataView =

   selectedRow.CreateChildView(northwindDataSet1.Relations

                                     ["FK_Orders_Customers"]);

d. Настройте OrderGrid для отображения связанного DataView:

      OrdersGrid.DataSource = ordersDataView;

16. Запустите и протестируйте приложение. Выберите клиента (CustomerID) и просмотрите его заказы.


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

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






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