ADO.NET. Управление базами данных. Связь по схеме OLE DB провайдера. Коррекция стилей DataGridView

Страницы работы

Содержание работы

ADO.NET. Управление базами данных

Первая часть курса была посвящена введению в технологию ADO.NET. Мы рассмотрели способы управления данными, которые содержатся в таблицах, поддерживаемых классом DataTable. Множество этих таблиц собрано в коллекцию DataTableCollection объекта класса DataSet. Набор данных DataSet имеет свойство Tables, которое обеспечивает доступ к коллекции DataTableCollection.

DataSet играет роль потребителя данных на компьютере. Он реализует функциональность отсоединенной от источника реляционной структуры данных. Методы управления данными не зависят от того, каким образом они попали в DataSet. В первой части курса источником данных был XML-файл. Вы помните, что сначала мы вручную поместили данные двух связанных таблиц в DataSet, затем записали их в XML-файл и далее работали с данными этого файла.

В настоящем документе мы рассмотрим способы управления данными DataSet в случае, когда он получил их из реальной базы данных. Акцент делается на особенностях работы с реальными источниками данных и деталях процесса обновления данных,

Повторим, что в концептуальной модели, или архитектуре ADO.NET выделяют две функциональные группы объектов: поставщики данных (data providers) и потребители данных (data consumers). Они поддержаны классами, обитающими в нескольких пространствах имен. Эти пространства, в свою очередь, вложены в пространство имен System.Data. Следующая схема иллюстрирует вложенность пространств.

Поставщики данных

Cвязь с базой данных поддерживается за счет группы функциональных объектов, называемой поставщиками данных (Data Providers). Их совместная работа позволяет управлять эффективностью процесса обмена данными.

·  Connections — классы, производные от DbConnection, осуществляют соединение с источником данных,

·  Commands — классы, производные от DbCommand, реализуют выполнение команд (SQL-запросов или хранимых процедур) при обращении к базе данных.

·  DataReaders — классы, производные от DbDataReader, осуществляют выборку данных из базы в безопасном режиме (read-only).

·  DataAdapters — классы, производные от DbDataAdapter, осуществляют перенос данных из реальных таблиц базы данных в коллекцию таблиц (объектов типа DataTable), поддерживаемых классом DataSet.

Рассматривая приведенную выше иерархию пространств имен, вы видите, что .NET Framework поддерживает четыре категории провайдеров данных. Наиболее современным считается SQL Server Data Provider, который следует использовать при работе с базами данных SQL Server, начиная с версии 7.0 и далее.

Классы из пространства имен SqlClient используют специальные протоколы обмена данными без дополнительной COM-прослойки OLE DB или ODBC. Это повышает скорость и эффективность работы с данными. Для работы с данными MS Access рекомендуется использовать классы из пространства имен OleDb.

Если надо работать со старыми базами данных типа PostgreSQL, Paradox или dBase, а также если необходима функциональность, предос-тавляемая драйвером ODBC и она недоступна в рамках провайдера OLE DB, то следует использовать классы из пространства имен Odbc. Отличительной чертой таких соединений является использование зарегистрированных DSN (Data Source Name).

Связь по схеме OLE DB провайдера

Самым простым способом продемонстрировать возможности технологии ADO.NET по соединению с источником данных является попытка связаться с базой данных по схеме OLE DB провайдера, так как при этом мы имеем возможность обойти малоприятные моменты, связанные с регистрацией источника данных, установкой прав пользователей и т. д.

Для выполнения намеченного плана надо предварительно, с помощью MS Access, создать простую базу данных, поместить результат (mdb-файл) в папку проекта Visual Studio и воспользоваться услугами вышеперечисленных классов, не забыв о классе DataSet, который выполняет роль потребителя данных. Данные отображает компонент DataGridView.

·  Создайте новый проект типа Windows Application с именем StudentsOleDb. Переименуйте файл (и класс) формы в MainForm.

·  Разместите на форме BindingNavigator с именем bn. Он имеет стандартный набор кнопок.

·  Добавьте в навигатор кнопку сохранения данных. Установите ее свойства (Name): btnSave и Text: Save.

·  Добавьте SplitContainer с горизонтальным расположением панелей.

·  Добавьте DataGridView с именем gridStud. Установите свойство AutoSizeColumnsMode в DisplayedCells.

·  В файл с кодом формы добавьте директиву: using System.Data.OleDb;

·  Внутри папки проекта (StudentsOleDb) создайте папку Data, и добавьте ее в проект (команда Add®New Folder). В этой папке мы будем хранить данные проекта.

·  Принесите в папку Data базу данных Students.mdb (возьмите ее в папке с материалами курса). Схема таблиц этой базы приведена ниже.

Табица Studs

Имя поля

Тип данных

Свойства

StudID

AutoNumber (первичный ключ)

Field Size=Long Integer, Increment

Name

Text

Field Size=50, Required=Yes

Phone

Text

Field Size=30

Addr

Text

Field Size=255

Похожие материалы

Информация о работе