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

Презентация:



Advertisements
Похожие презентации
ADO.NET Интегрированная среда разработки. ADO.NET Общая картина Все типы ADO.NET предназначены для выполнения одного набора задач: установить соединение.
Advertisements

Использование XML Тема 4*. Слайд 2. Настройка свойств dataSet1.
Лекция 20. ADO.NET Отсоединенная модель доступа к данным.
Департамент образования и науки Тюменской области Государственное автономное профессиональное образовательное учреждение Тюменской области «Западно-Сибирский.
1 ТЕМА УРОКА: «Базы данных. Запрос как инструмент обработки данных»
Особенности C# Индексаторы, события, частичные методы, расширяющие методы, сборщик мусора DraggonZ.
Ekaterina B. Egorkina,© VEELTECH.RU Загрузка и вывод изображений Каким образом можно сохранить картинку в БД, а потом отобразить ее на странице?
Классы из пространства имен System.Data ObjectMarshalByValueComponentDataSetDataTableDataViewDataColumnDataRowDataRelationConstraintForeignKeyConstraintUniqueKeyConstraint.
Лекция 3 Принципы объектно- ориентированного программирования.
Связи между таблицами являются необходимым элементом структуры БД. Для того, чтобы связь была возможна, таблицы должны иметь общие поля. Чаще всего в одной.
Создание таблиц базы данных. Запросы на выборку данных.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Создание таблиц базы данных. Запросы на выборку данных.
ДАЛЕЕ БАЗА ДАННЫХ ACCESS Проектирование базы данных Создание базы данных Создание базы данных без помощи мастера Таблицы Создание таблицы в режиме конструктора.
Высокоуровневые методы информатики и программирования Лекция 9 Делегаты.
Слайд-лекция по теме: «Системы управления базами данных (Access 97)» Разработал преподаватель информатики первой категории Гуляй Василий Анатольевич. Часть.
Урок 3. Формы представления данных (таблицы, формы, запросы, отчеты)
Источники данных LINQ РУБД. LINQ (Language Integrated Query, язык интегрированных запросов ) это технология, которая позволяет разработчикам формировать.
Условия поиска информации, простые логические выражения.
Что такое база данных ? База данных – это совокупность хранящихся взаимосвязанных данных, организованных по определенным правилам Приведите примеры баз.
Транксрипт:

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

Типизированный класс DataSet

Виды классов DataSet Не типизированные (Untyped Dataset ) –Экземпляры класса DataSet –Можно получать таблицы только по индексу в коллекции –Можно получать поля только по индексу в коллекции Типизированные (Typed Dataset) –Экземпляры класса производного от DataSet –Можно работать с таблицами по их названию (методы) –Можно работать с полями по их названию. –Можно создавать с помощью Data Source Designer

Типизированный 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.

Виды классов 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

Типизированный класс DataSet В данном классе для каждой таблицы создаются подклассы –Имя класса типизированных таблиц. DataTable Свойства Column Индексатор this[int] возвращает типизированную строку (объект Row) New Row() Add Row –( Row) –(список значений полей) –класс типизированных строк. Row Свойства Get Rows()

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

Создание типизированного DataSet с помощью меню В меню Visual Studio 2008 Data Source есть пункт Data для создания и работы с типизированными DataSet. Для создания типизированного DataSet нужно выбрать команду Add New Data Source При создании источника данных в Visual Studio 2008, создаются: Класс типизированного объектов DataSet (с типизированными DataTable и DataRow). Класс типизированных объектов DataAdapter.

Пример типизированных 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";

Дочерние классы В типизированный класс DataSet включены дочерние классы –типизированных таблиц; –типизированных строк. Для указания класса типизированной таблицы нужно указывать имя DataSet, к которому она относится. DataTable –Например: MyDS.CustomersDataTable; Классы типизированных записей также включены в класс типизированного Dataset. Row –Например: MyDS.CustomersDataRow

Описание типизированного класса 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 {...}... }

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

Использование типизированного объекта 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;

Пример заполнения типизированного 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 }

Настройка типизированных адаптеров Адаптер позволяет заполнить типизированные таблицы и сохранить изменения в БД. Для адаптера можно создать несколько запросов. Например: –Запрос без параметров для загрузки всех записей –Запросы с параметрами, которые задают условия выбора записей из БД. Для адаптеров можно создать разные методы. Например: –Fill(), которые заносят данные в типизированные таблицы. –Get(), которые возвращают созданную таблицу в качестве результата работы.

Добавление запросов к адаптеру

Создание типизированного адаптера и таблицы DataTable Мастер конфигурирования TableAdapter

Задание запроса вручную

Построение запроса с помощью Query Builder

Генерирование других команд TableAdapter Advance options

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

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

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