Практическое занятие 4.  Создание объектов DataSet



Объекты DataSet доступны в пространстве имен System.Data и используются в приложении для кеширования данных в памяти. DataSet содержит объекты DataTable, которые могут быть связаны с помощью объектов DataRelation подобно структуре реляционной базы данных.

Упражнение 1. Использование DataSet Designer для создания DataSet

В этом упражнении применяется средство времени разработки, с помощью которого упрощается процесс создания типизированных объектов DataSet.

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

2. В меню Project выберите команду Add New Item и добавьте шаблон DataSet (Набор данных), укажите ему имя NorthwindDataSet.xsd.

3. Перенесите таблицы Customers и Orders из окна Server Explorer на поверхность конструктора.

4. Постройте проект.

5. На поверхность формы проекта перенесите в левый верхний угол формы кнопку и установите свойству (Name) значение GetCustomersButton, свойству TextGet Customers.

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

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

a. Создайте экземпляр типизированного набора данных Northwind:

NorthwindDataSet NorthwindDataset1 = new NorthwindDataSet();

b. Создайте экземпляр CustomersTableAdapter

NorthwindDataSetTableAdapters.CustomersTableAdapter

CustomersTableAdapter1 =

           new NorthwindDataSetTableAdapters.CustomersTableAdapter();

c. Вызовите метод для загрузки всех клиентов в DataTable:

CustomersTableAdapter1.Fill(NorthwindDataset1.Customers);

d. Передайте значения столбца CompanyName в ListBox:

foreach (NorthwindDataSet.CustomersRow NWCustomer in

                        NorthwindDataset1.Customers.Rows)

       {

           CustomersListBox.Items.Add(NWCustomer.CompanyName);

       }

8. Выполните приложение. Проверьте, что значение CompanyName каждого клиента отображается в списке.

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

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

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

2. На поверхность формы проекта перенесите в левый верхний угол формы кнопку и установите свойству (Name) значение AddRowButton, свойству TextAdd Row.

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

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

private DataTable CustomersTable = new DataTable("Customers");

5. Создать таблицу можно несколькими способами: указать код инициализации непосредственно в конструкторе формы, создать для этого обработчик события загрузки формы (Load) или в обработчике события Click специальной кнопки. Выберем второй вариант. Создайте обработчик события Load формы.

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

a. Присвойте DataGridView отображаемой таблице:

TableGrid.DataSource = CustomersTable;

b. Определите схему таблицы добавлением столбцов (объектов DataColumn) к коллекции Columns таблицы:

CustomersTable.Columns.Add("CustomerID", Type.GetType("System.String"));

CustomersTable.Columns.Add("CompanyName", Type.GetType("System.String"));

CustomersTable.Columns.Add("ContactName", Type.GetType("System.String"));

CustomersTable.Columns.Add("ContactTitle", Type.GetType("System.String"));

CustomersTable.Columns.Add("Address", Type.GetType("System.String"));

CustomersTable.Columns.Add("City", Type.GetType("System.String"));

CustomersTable.Columns.Add("Country", Type.GetType("System.String"));

CustomersTable.Columns.Add("Phone", Type.GetType("System.String"));

c. Укажите столбец CustomerID как первичный ключ:

DataColumn[] KeyColumns = new DataColumn[1];

KeyColumns[0] = CustomersTable.Columns["CustomerID"];

CustomersTable.PrimaryKey = KeyColumns;

d. Запретите для столбцов CustomerID и CompanyName значения Null:

CustomersTable.Columns["CustomerID"].AllowDBNull = false;

CustomersTable.Columns["CompanyName"].AllowDBNull = false;

7. В обработчике события Click специальной кнопки Add Row:

a. Реализуйте создание записи:

DataRow CustRow = CustomersTable.NewRow();

Object[] CustRecord = {"ALFKI", "Alfreds Futterkiste", "Maria Anders",

           "Sales Representative", "Obere Str. 57", "Berlin",

             null, "12209", "Germany", "030-0074321","030-0076545"};

CustRow.ItemArray = CustRecord;

b. Добавьте запись в таблицу:

CustomersTable.Rows.Add(CustRow);

8. Запустите приложение. После загрузки формы отобразится созданная таблица. Добавьте строку в таблицу. Проверьте, что повторная попытка добавить строку приводит к исключительной ситуации. Реализуйте обработчик исключения с возможностью определения типа исключения.

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


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

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






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