1 / 24

Высокоуровневые методы информатики и программирования Лекция 2 9 Типизированные классы Dataset

Высокоуровневые методы информатики и программирования Лекция 2 9 Типизированные классы Dataset. Типизированный класс DataSet. Виды классов DataSet. Не типизированные (Untyped Dataset ) Экземпляры класса DataSet Можно получать таблицы только по индексу в коллекции

roden
Download Presentation

Высокоуровневые методы информатики и программирования Лекция 2 9 Типизированные классы Dataset

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • В данном классе для каждой таблицы создаются подклассы • Имя класса типизированных таблиц <имя DataSet>.<имя таблицы>DataTable • Свойства <Поле>Column • Индексатор this[int] возвращает типизированную строку (объект <имя таблицы>Row) • New<имя таблицы>Row() • Add<имя таблицы>Row • (<имя таблицы>Row) • (список значений полей) • класс типизированных строк <имя DataSet>.<имя таблицы>Row • Свойства <Поля> • Get<имя таблицы>Rows()

  7. Схема типизированного DataSet Типизированный DataSet DataSet (базовый класс) Customers CustomersRow DataTable “Customers” Orders DataTable “Orders” OrdersRow DataTable “OrderDetails” OrderDetails OrdersDetailsRow Типизированныt DataAdapters CustomersDataAdapter DataAdapter DataAdapter OrdersDataAdapter OrdersDetailsDataAdapter DataAdapter

  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 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"; • Доступ к данным в типизированном DataSet 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, к которому она относится <имя DS>.<имя таблицы>DataTable • Например: MyDS.CustomersDataTable; • Классы типизированных записей также включены в класс типизированного Dataset <имя DataSet>.<имя таблицы>Row • Например: MyDS.CustomersDataRow

  11. Описание типизированного класса DataSet namespaceAppDataSet { publicpartialclassNorthwndDS : global::System.Data.DataSet { private CustomersDataTabletableCustomers; private Order_DetailsDataTabletableOrder_Details; private OrdersDataTabletableOrders; privateCustomersDataTabletableCustomers; privateEmployeesDataTabletableEmployees; . . . publicpartialclassCustomersDataTable : DataTable, IEnumerable { ... } publicpartialclassEmployeesDataTable : DataTable, IEnumerable { … } . . . public partial class CustomersRow : DataRow {. . .} public partial class CustomersRow : DataRow {. . .} . . . } }

  12. Пространство имен с описаниями классов для типизированных DataAdapter namespace <имя проекта>.<имя DS>TableAdapters namespace AppDataSet.NorthwndDSTableAdapters { ... // описание класса для TableAdapter public partial class CustomersTableAdapter :Component { ... } ... }

  13. Использование типизированного объекта TableAdapter • Подключение пространства имен using <имя проекта>.<имя DS>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

  21. Запрос с параметром

  22. Выбор имен для методов TableAdapter

  23. Проверка метода

More Related