4.2.4 Класс OleDbDataAdapter. //Заполняет объект DataSet данными, полученными из таблицы. //на источнике данных с указанным именем
4. 2. 4 Класс OleDbDataAdapter Класс OleDbDataAdapter используется в тех случаях, когда необходимо заполнить полученными с сервера данными объект DataSet и выполнить с ними определенные операции. Основное назначение этого класса – извлечь информацию из источника данных и заполнить ею объект DataTable в DataSet при помощи метода OleDbDataAdapter. Fill(). Метод Fill() многократно перегружен, ниже приведены два наиболее часто используемых варианта (возвращаемое значение int позволяет получить информацию о количестве записей, полученных из источника данных): //Заполняет объект DataSet данными, полученными из таблицы //на источнике данных с указанным именем public int Fill(DataSet ds, string tableName); //Также заполняет данными, но только теми, которые находятся //в указанных границах public int Fill(DataSet ds, string tableName, int startRecord, int maxRecord);
Конечно, перед тем, как вызывать этот метод, нужно иметь уже созданный объект OleDbDataAdapter. Конструктор OleDbDataAdapter также многократно перегружен, но обычно необходимо указать информацию о параметрах подключения к базе данных и команду SELECT на языке SQL, которая будет использована для заполнения DataTable. OleDbDataAdapter позволяет не только заполнять объект DataTable внутри DataSet данными, полученными из источника, но и помещать измененные данные обратно в источник данных при помощи стандартных команд SQL. В таблице 1. 4 представлены компоненты класса OleDbDataAdapter, которые позволяют это сделать, а также некоторые другие важнейшие элементы этого класса.
Таблица 1. 4 – Основные компоненты класса OleDbDataAdapter
При использовании свойств DeleteCommand, InsertCommand, SelectCommand, UpdateCommand объект OleDbDataAdapter автоматически переводит внесенные изменения в таблицу данных в DataSet в соответствующие команды на языке SQL, сохраняя, таким образом, внесенные изменения в источнике данных. Эти свойства позволяют определить соответствующие команды SQL в деталях.
5 Пример выполнения задания Задание: База данных из двух связанных таблиц «Телефонная книжка» создана в Microsoft Access. Реализовать с помощью управляемого провайдера OLE DB доступ к этой базе данных.
5. 1. Создание базы данных в Microsoft Access База данных Organizer состоит из двух связанных таблиц: Contacts и Phones. Их структура приведена в таблице 1. 5. Пример выполнения задания Таблица 1. 5 – Структура таблиц базы данных
Таблицы связываются между собой по номеру записи в таблице контактов. Данная связь показана на рисунке 1. 2.
Рисунок 1. 2 – Связывание таблиц БД 5. 2 Доступ к данным с помощью управляемого провайдера OLE DB
Прежде всего, следует поместить на форму компонент oleDbConnection и настроить его свойство ConnectionString, выбрав пункт < Новое подключение…>. Открывается диалоговое окно, представленное на рисунке 1. 3. С помощью кнопки Изменить… в правом верхнем углу окна надо установить вид источника данных ( Data source ) как Файл базы данных Microsoft Access. Далее с помощью кнопки Обзор… в строке Имя файла базы данных нужно указать путь и имя файла с базой данных. Кнопка Проверить подключение позволяет проверить правильность установления соединения.
Рисунок 1. 3 – Установление соединения с базой данных
Следующим шагом является создание адаптера – компонента, выполняющего непосредственную передачу данным между приложением и базой данных. Для начала необходимо поместить на форму компонент OleDbDataAdapter. При этом на экране появляется окно мастера настройки адаптера (рисунок 1. 4). Здесь следует проверить правильность указания пути к файлу БД. Примечание. После нажатия кнопки Next мастером настройки будет предложен вариант работы с базой данных, при котором при каждом запуске программе будет создаваться копия базы данных в папке приложения. На данном шаге следует нажать кнопку «NO»!
Рисунок 1. 4 – Конфигурирование адаптера данных
Далее мастер предлагает задать команды SQL для загрузки данных в приложение. Кнопка Query Builder… данного окна предлагает визуальный метод построения данной команды. В открывшемся окне Add Table следует добавить в Query Builder главную таблицу БД – таблицу Contacts, а затем отметить в этой таблице все ее столбцы (рисунок 1. 5). Аналогичным образом добавляется адаптер и для второй таблицы БД – таблицы Phones. Процесс создания данного адаптера аналогичен адаптеру таблицы Contacts (в окно Построитель запросов, естественно, нужно добавлять таблицу Phones ). Следующим шагом является формирование набора данных – объекта DataSet. Для этого нужно в режиме дизайнера формы вызвать контекстное меню и выбрать в нем пункт Создать набор данных… Открывается соответствующее диалоговое окно (рисунок 1. 6), с помощью которого создается новый набор данных. В него следует добавить обе таблицы.
Рисунок 1. 5 – Построение команды SQL для доступа к таблице Contacts
Рисунок 1. 6 – Добавление в проект набора данных ( DataSet )
После этого в сгенерированный набор данных можно добавлять другие необходимые элементы: остальные таблицы БД, связи между ними, запросы и т. п. Для этого нужно в окне Обозреватель решений выбрать (дважды щелкнуть мышью) элемент DataSet1. xsd. Так, для нашего приложения в набор данных следует добавить отношение – связь между таблицами БД: в окне DataSet1. xsd в контекстном меню выбирается пункт Добавить®Отношение… Открывается диалоговое окно редактирования отношения, где можно задать имя создаваемого отношения, родительскую и подчиненную таблицы, ключевые поля, а также режимы автоматических изменений дочерней таблицы при изменении родительской таблицы. Для разрабатываемого приложения создается отношение с именем FK_Contacts_Phones. Его настройки приведены на рисунке 1. 7.
Рисунок 1. 7 – Создание отношения между таблицами
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|