![](/user_photo/2706_HbeT2.jpg)
- •Лабораторная работа №5. Разработка приложений с применением управляемых провайдеров ado.Net
- •1. Цель работы
- •2. Сведения из теории
- •2.1. Общие сведения об управляемых провайдерах ado.Net
- •2.2. Управляемый провайдер ole db
- •2.2.1. Установление соединения при помощи типа OleDbConnection
- •2.2.2. Построение команды sql
- •2.2.3. Работа с OleDbDataReader
- •2.2.4. Класс OleDbDataAdapter
- •3. Пример выполнения работы
- •2.1. Создание базы данных в Microsoft Access
- •3.2. Доступ к данным с помощью управляемого провайдера ole db
- •3.3. Визуальное проектирование диалогового окна
- •3.4. Проектирование программного кода
- •4. Варианты заданий для самостоятельной работы
3. Пример выполнения работы
Задание: База данных из двух связанных таблиц «Телефонная книжка» создана в Microsoft Access. Реализовать с помощью управляемого провайдера OLE DB доступ к этой базе данных.
2.1. Создание базы данных в Microsoft Access
База данных Organizer состоит из двух связанных таблиц: Contacts и Phones. Структура таблиц приведена ниже:
Название поля |
Тип поля |
Размер поля |
Примечание |
Назначение поля |
Таблица Contacts | ||||
Id |
Счетчик |
Длинное целое |
Ключевое поле |
Номер записи |
Fam |
Текстовый |
20 |
|
Фамилия |
Name |
Текстовый |
20 |
|
Имя |
Таблица Phones | ||||
PhoneId |
Счетчик |
Длинное целое |
Ключевое поле |
Номер записи |
ContactId |
Числовой |
Длинное целое |
|
Идентификатор контакта |
Phone |
Текстовый |
20 |
|
Телефон |
Таблицы связываются между собой по номеру записи в таблице контактов. Данная связь показана на рисунке 5.2.
Рис. 5.2. Связывание таблиц БД
3.2. Доступ к данным с помощью управляемого провайдера ole db
Прежде всего, следует поместить на форму компонент oleDbConnection и настроить его свойство ConnectionString, выбрав пункт <New connection…>. Открывается диалоговое окно, представленное на рисунке 5.3. С помощью кнопки Change… в правом верхнем углу окна надо установить вид источника данных (Data source) как Microsoft Access Database file. Далее с помощью кнопки Browse… в строке Database file name нужно указать путь и имя файла с базой данных. Кнопка Test Connection позволяет проверить правильность установления соединения.
Рис. 5.3. Установление соединения с базой данных
Следующим шагом является создание адаптера – компонента, выполняющего непосредственную передачу данным между приложением и базой данных. Для начала необходимо поместить на форму компонент OleDbDataAdapter. При этом на экране появляется окно мастера настройки адаптера (рис. 5.4). Здесь следует проверить правильность указания пути к файлу БД.
Примечание. После нажатия кнопки Next мастером настройки будет предложен вариант работы с базой данных, при котором при каждом запуске программе будет создаваться копия базы данных в папке приложения. На данном шаге следует нажать кнопку «NO»!
Рис. 5.4. Конфигурирование адаптера данных
Далее мастер предлагает задать команды SQL для загрузки данных в приложение. Кнопка Query Builder… данного окна предлагает визуальный метод построения данной команды. В открывшемся окне Add Table следует добавить в Query Builder главную таблицу БД – таблицу Contacts, а затем отметить в этой таблице все ее столбцы (рис. 5.5).
На этом создание адаптера таблицы Contacts завершается. Следующим шагом является формирование набора данных – объекта DataSet. Для этого нужно в режиме дизайнера формы вызвать контекстное меню и выбрать в нем пункт Generate DataSet… Открывается соответствующее диалоговое окно (рис. 5.6), с помощью которого создается новый набор данных.
Аналогичным образом добавляется адаптер и для второй таблицы БД – таблицы Phones. Процесс создания данного адаптера аналогичен адаптеру таблицы Contacts (в окно Query Builder, естественно, нужно добавлять таблицу Phones). Чтобы добавить таблицу Phones в DataSet, следует щелкнуть правой кнопкой мыши на адаптере данной таблицы, в контекстном меню выбрать Generate DataSet… и в открывшемся диалоговом окне выбрать существующий объект DataSet (т.е. оставить настройки по умолчанию).
Рис. 5.5. Построение команды SQL для доступа к таблице Contacts
Рис. 5.6. Добавление в проект набора данных (DataSet)
После этого в сгенерированный набор данных можно добавлять другие необходимые элементы: остальные таблицы БД, связи между ними, запросы и т.п. Для этого нужно в окне Solution Expolrer выбрать (дважды щелкнуть мышью) элемент DataSet1.xsd. Так, для нашего приложения в набор данных следует добавить отношение – связь между таблицами БД: в окне DataSet1.xsd в контекстном меню выбирается пункт Add->Relation… Открывается диалоговое окно редактирования отношения, где можно задать имя создаваемого отношения, родительскую и подчиненную таблицы, ключевые поля, а также режимы автоматических изменений дочерней таблицы при изменении родительской таблицы. Для разрабатываемого приложения создается отношение с именем FK_Contacts_Phones. Его настройки приведены на рисунке 5.7.
Рис. 5.7. Создание отношения между таблицами