Практическое занятие 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, свойству Text – Get 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, свойству Text – Add 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!