Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR_5_Tekhnologia_programmirovania.docx
Скачиваний:
54
Добавлен:
20.03.2016
Размер:
190.71 Кб
Скачать

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. Создание отношения между таблицами