Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВера Зотова
1 Высокоуровневые методы информатики и программирования Лекция 29 Типизированные классы Dataset
2 Типизированный класс DataSet
3 Виды классов DataSet Не типизированные (Untyped Dataset ) –Экземпляры класса DataSet –Можно получать таблицы только по индексу в коллекции –Можно получать поля только по индексу в коллекции Типизированные (Typed Dataset) –Экземпляры класса производного от DataSet –Можно работать с таблицами по их названию (методы) –Можно работать с полями по их названию. –Можно создавать с помощью Data Source Designer
4 Типизированный data set это набор классов, которые создается декларативно с помощью дизайнера Visual Studio. Данные классы являются производными от классов DataSet, DataTable и DataRow ADO.NET и содержат типизированное (безопасное по типу) API (набор свойств) для получения доступа к данным, которые содержатся в DataSet, имеющем конкретную схему (набор таблиц и отношений). Типизированный data set можно создать в Visual Studio с помощью операции перетаскивания (drag and drop) и с помощью задания свойств в окне Properties. При проектировании типизированного data set создается файл описания схемы XML (XML Schema Definition, XSD), содержащий схему данных, которые будут сохраняться в DataSet. Файл XSD также содержит аннотации, которые связаны с источником данных, из которого он будет генерироваться. Затем Visual Studio использует файл XSD для создания программного файла, который содержит описание типизированных классов data set.
5 Виды классов DataSet Нетипизированный класс DataSet // salesData – объект DataSet DataTable companyTable = salesData.Tables["Company"]; // обращение к элементу "columnName" записи index salesData.Rows [index]["columnName"] Типизированный класс DataSet (объект vendorData) DataTable companyTable = vendorData.Company; companyTable.Rows[index].columnName
6 Типизированный класс DataSet В данном классе для каждой таблицы создаются подклассы –Имя класса типизированных таблиц. DataTable Свойства Column Индексатор this[int] возвращает типизированную строку (объект Row) New Row() Add Row –( Row) –(список значений полей) –класс типизированных строк. Row Свойства Get Rows()
7 Схема типизированного DataSet DataSet (базовый класс) DataTable Customers Типизированный DataSet Customers Orders CustomersRow DataTable Orders DataTable OrderDetails OrdersRow OrderDetails OrdersDetailsRow Типизированныt DataAdapters DataAdapter CustomersDataAdapter OrdersDataAdapter OrdersDetailsDataAdapter
8 Создание типизированного DataSet с помощью меню В меню Visual Studio 2008 Data Source есть пункт Data для создания и работы с типизированными DataSet. Для создания типизированного DataSet нужно выбрать команду Add New Data Source При создании источника данных в Visual Studio 2008, создаются: Класс типизированного объектов DataSet (с типизированными DataTable и DataRow). Класс типизированных объектов DataAdapter.
9 Пример типизированных DataSet Доступ к данным в обычном DataSet Доступ к данным в типизированном DataSet DataSet ds = new DataSet("PersonContacts"); DataTable personTable = new DataTable("Person");... ds.Tables.Add(personTable); DataRow person = personTable.NewRow(); personTable.Rows.Add(person); person["Name"] = "Beer";... person.GetChildRows("PersonHasContacts")[0]["Name"] = "Beer"; PersonContacts typedDS = new PersonContacts(); PersonTable personTable = typedDS.Person; Person person = personTable.NewPersonRow(); personTable.AddPersonRow(person); person.Name = "Beer";... person.GetContactRows()[0].Name = "Beer";
10 Дочерние классы В типизированный класс DataSet включены дочерние классы –типизированных таблиц; –типизированных строк. Для указания класса типизированной таблицы нужно указывать имя DataSet, к которому она относится. DataTable –Например: MyDS.CustomersDataTable; Классы типизированных записей также включены в класс типизированного Dataset. Row –Например: MyDS.CustomersDataRow
11 Описание типизированного класса DataSet namespace AppDataSet { public partial class NorthwndDS : global::System.Data.DataSet { private CustomersDataTable tableCustomers; private Order_DetailsDataTable tableOrder_Details; private OrdersDataTable tableOrders; private CustomersDataTable tableCustomers; private EmployeesDataTable tableEmployees;... public partial class CustomersDataTable : DataTable, IEnumerable {... } public partial class EmployeesDataTable : DataTable, IEnumerable { … }... public partial class CustomersRow : DataRow {...} public partial class CustomersRow : DataRow {...}... }
12 Пространство имен с описаниями классов для типизированных DataAdapter namespace. TableAdapters namespace AppDataSet.NorthwndDSTableAdapters {... // описание класса для TableAdapter public partial class CustomersTableAdapter : Component {... }... }
13 Использование типизированного объекта TableAdapter Подключение пространства имен using. TableAdapters; Создаем объект, куда заносить данные –Типизированный DataSet. Например: NorthwndDS ds = new NorthwndDS(); –Типизированную таблицу. Например: NorthwndDS.EmployeesDataTable etbl = new NorthwndDS.EmployeesDataTable(); Создаем типизированный адаптер. Например: EmployeesTableAdapter etda = new EmployeesTableAdapter(); Выполняем занесение данных в объект –В таблицу типизированного DataSet etda.Fill(ds.Employees); –В типизированную таблицу etda.Fill(etlb); Подключаем объект к элементу управления –К типизированному DataSet dgv.DataSource = ds; dgv.DataMember = "Employees"; –К типизированной таблице dgv.DataSource = etbl;
14 Пример заполнения типизированного DataSet using DSsample.NorthwindTableAdapters; // добавлено новое пространство имен... // создаем экземпляр типизированного DataSet в классе Form NorthwndDS ds = new NorthwndDS(); private void Form1_Load(object sender, EventArgs e) { // создаем нужный типизированный адаптер EmployeesTableAdapter eta = new EmployeesTableAdapter(); // заполняем таблицу в DataSet eta.Fill(ds.Employees); // назначаем таблицу элементу управления dgv.DataSource = ds; dgv.DataMember = "Employees"; ds.Employees.get }
15 Настройка типизированных адаптеров Адаптер позволяет заполнить типизированные таблицы и сохранить изменения в БД. Для адаптера можно создать несколько запросов. Например: –Запрос без параметров для загрузки всех записей –Запросы с параметрами, которые задают условия выбора записей из БД. Для адаптеров можно создать разные методы. Например: –Fill(), которые заносят данные в типизированные таблицы. –Get(), которые возвращают созданную таблицу в качестве результата работы.
16 Добавление запросов к адаптеру
17 Создание типизированного адаптера и таблицы DataTable Мастер конфигурирования TableAdapter
18 Задание запроса вручную
19 Построение запроса с помощью Query Builder
20 Генерирование других команд TableAdapter Advance options
22 Запрос с параметром
23 Выбор имен для методов TableAdapter
24 Проверка метода
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.