2007 г.
Марченко Антон Леонардович
Интернет-Университет Информационных Технологий, INTUIT.ru
Назад Оглавление Вперёд
Подключение к БД на этапе разработки приложения
Для продолжения экспериментов воспользуемся базой-примером "Северные ветры".
Для внешнего окружения – это всего лишь файл с расширением .mdb.
В нашем случае –
E:\Program Files\Microsoft Office\Office10\Samples\Борей.mdb.
Ближайшей задачей будет разработка простого Windows-приложения, обеспечивающего просмотр содержащейся в базе информации о клиентах и их заказах.
Внешний вид формы приложения будет представлен несколькими текстовыми полями, в которых будет отображаться информация о клиенте, а также элементом DataGrid
, где будет отображаться информация о связанных с клиентом заказах.
Один из возможных вариантов создания соединения средствами встроенных мастеров предполагает следующую последовательность шагов в рамках Visual Studio .NET 2005. Непосредственно перед началом работ по созданию приложения для наглядности рекомендуется держать открытым окно с информацией о базе данных (пункты меню Data.Show Data Sources):
- для нового приложения выполняются действия, связанные с созданием объекта – представителя класса
DataSet
(Data, Add New Data Source
). При этом осуществляются действия по установлению и тестированию соединения с базой данных, требуется ответить на вопрос по поводу возможности копирования информации из базы в директорию приложения (речь идет о локальной копии базы); - с использованием инструмента "Add Connection" объявляется тип источника данных (Microsoft Access Database File (OLE DB)) и определяется имя файла базы данных (файл "Борей.mdb"). Волшебник предоставляет возможность непосредственного тестирования устанавливаемого соединения;
- в результате создается объект – представитель класса
DataSet
, построенный и настроенный применительно к данному приложению для работы с базой данных. О сложности этой конструкции можно судить по объему программного кода, подсоединяемого к проекту; - для исследования и редактирования его свойств
DataSet
предусмотрено средство DataSet Designer
; - свидетельством успешного установления соединения является возможность выполнения действия "Edit DataSet with designer", в результате которого в окошке NorthWinds.xsd визуализируется полная схема базы данных, включая таблицы и отношения между ними.
При этом в кодах приложения размещается соответствующий программный код, который обеспечивает создание объекта соединения соответствующего типа и с определенными параметрами.
Объект – представитель класса DataSet
можно расположить на форме в виде компоненты. Объявление класса (включая строку соединения) можно будет попытаться проанализировать (файл имеет объем около 9000 строк), открыв файл БорейDataSet.Designer.sc.
Таким образом, процедура установления соединения с базой данных на этапе создания приложения целиком обеспечивается средствами "волшебников" в рамках работы по созданию приложения.
Продолжение разработки. Простые шаги
Продолжение работы по созданию простого приложения для работы с базой данных также не предусматривает непосредственной работы с программным кодом.
После создания объекта DataSet
и трансляции кода приложения на панели инструментов появляется новая вкладка, предоставляющая возможность работы с автоматически объявленными классами – адаптерами таблиц. После чего работа по созданию приложения сводится к нескольким достаточно простым "волшебным" манипуляциям:
- создается объект – представитель класса
BindingSource
, свойству DataSource
которого присваивается ссылка на ранее созданный объект DataSet
, а свойству DataMember
– значение, связанное с определенной в базе данных таблицей "Клиенты"; - это действие сопровождается созданием объекта – адаптера таблицы, условное обозначение которого появляется на панели компонентов формы, что делает адаптер доступным для возможной модификации и настройки;
- получение информации из базы данных обеспечивается при помощи запросов к базе, которые также достаточно просто построить, запустив соответствующий "волшебник". Мышиный клик по пиктограмме адаптера на панели, вызов генератора запроса, далее – в соответствии с замыслом приложения и сценарием генератора. После создания запроса на панели компонентов формы появляется пиктограмма, обозначающая ранее построенный объект-представитель класса
DataSet
, а непосредственно на форме – инструментальная панель с элементом, который обеспечивает выполнение запроса, в результате которого через соответствующий адаптер таблицы производится заполнение объекта DataSet
'а; - для решения поставленной задачи необходимо дважды запустить генератор запросов для заполнения таблиц "клиенты" и "заказы". Генератор запускается "от существующего" адаптера таблицы. Процесс создания второго запроса сопровождается появлением второго адаптера таблицы. При этом на форме появляются две инструментальные панели, обеспечивающие загрузку информации при выполнении приложения;
- информация о клиентах и заказах размещается в элементах управления типа
TextBox
(о клиентах) и элементе управления DataGrid
(о заказах). Эти элементы размещаются на поверхности формы с последующей их привязкой к элементам DataSet
'а, при этом мастер создает объекты – представители класса BindingSource
; - для обеспечения навигации по данным используется комбинированный элемент управления
BindingNavigator
, который настраивается на один из объектов – представителей класса BindingSource
(к моменту настройки навигатора таких объектов в приложении – два).
В результате получаем приложение, которое обеспечивает просмотр содержимого базы данных.
... и еще более простые шаги
На самом деле разработка простой формы для работы с базой данных требует еще меньше усилий. Можно совсем ничего не делать и получить готовую форму.
После создания объекта-представителя класса DataSet
надо всего лишь "перетащить" на форму из окна Data Sources пиктограмму соответствующей таблицы базы данных. В случае с базой данных "Борей" – это пиктограмма таблицы "Клиенты". При этом автоматически к коду приложения добавляются соответствующие классы и элемент управления для навигации по таблице "Клиенты". Для визуализации множества записей, связанных с заказами клиентов, следует проделать следующие манипуляции:
- "Раскрыть" в окне Data Sources пиктограмму, обозначающую таблицу "Клиенты". При этом становятся видимыми пиктограммы, отображающие столбцы таблицы, и пиктограмма связанной с таблицей "Клиенты" таблицы "Заказы".
- На форму следует перетащить эту самую пиктограмму. В результате получаем форму с парой объектов
DataGrid
, в которых можно наблюдать согласованные множества записей. Для каждого клиента наблюдаем множество заказов.
Разработчику приложения остается упражняться в вариантах перетаскивания пиктограмм (перетаскивать можно пиктограммы отдельных полей таблицы) и медитировать над полученным кодом.
Назад Оглавление Вперёд