* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Архитектура данных ADO.NET
8 февраля 2009

Доступ к данным в ADO.NET основан на использовании двух компонентов: набора
данных (он представлен объектом DataSet), в котором данные хранятся на локаль-
ном компьютере, и провайдера данных (Data Provider), выполняющего функции по-
средника при взаимодействии программы и БД.
Объект DataSet
Объект DataSet — это представление в памяти компьютера данных, изолированных
от источника данных. Этот объект можно также рассматривать как локальную ко-
пию фрагмента БД. В DataSet данные можно загрузить из любого допустимого ис-
точника, например из БД SQL Server, Microsoft Access или XML-файла. Объект
DataSet хранится в памяти, его содержимым разрешено манипулировать и обнов-
лять независимо от БД, играющей роль источника данных. При необходимости
объект DataSet может служить шаблоном для обновления серверной БД.
Объект DataSet содержит набор объектов DataTable (этот набор может быть и
пустым, то есть не содержать ни одного объекта DataTable}. Каждый объект Data-
Table представляет в памяти компьютера одну таблицу. Структура объекта Data Table
определяется двумя наборами: DataColumns, куда входят все столбцы таблицы, ко-
торую представляет объект DataTable, и набором ограничений таблицы. Вместе эти
два набора составляют схему таблицы. В DataTable также входит набор Data Rows,
где, собственно, и хранятся данные объекта DataSet.
Кроме того, объект DataSet содержит набор Data Relations, который позволяет со-
здавать связи между строками различных таблиц. DataRelations содержит набор
объектов DataRelation, определяющих связи между таблицами, которые составляют
DataSet. Рассмотрим, например, DataSet, содержащий две связанные между собой
таблицы — Customers и Orders. В таблице Customers каждый покупатель представ-
лен только одной строкой, идентифицируемой уникальным полем CustomerlD. В
таблице Orders содержатся сведения о покупателях, разместивших заказы; заказчи-
ки идентифицируются значением поля CustomerlD. Если некоторый покупатель
разместит несколько заказов, то в таблице Orders может оказаться несколько шпи-
сей с одинаковым значением CustomerlD. Подобная ситуация — пример связи типа
«один ко многим», такую связь можно определить посредством объекта DataRelation.
Наконец, DataSet содержит набор Extended Properties, в котором хранятся допол-
нительные данные объекта DataSet.
Провайдер данных
Связь с БД создается и поддерживается при помощи провайдера данных {Data
Provider). В действительности провайдер — это набор взаимосвязанных компонен-
тов, обеспечивающих эффективный высокопроизводительный доступ к данным. В
настоящее время с .NET Framework поставляются два провайдера данных: SQL
Server .NET Data Provider, созданный для работы с SQL Server версии 7.0 и выше, и
OleDb .NET Data Provider— для подключения к БД других типов. Любой провайдер
данных состоит из близких версий следующих универсальных классов компонентов:
• Connection — обеспечивает подключение к БД;
• Command — применяется для управления источником данных; позволяет испол-
нять команды, не возвращающие данных, например INSERT, UPDATE и DELETE,
либо команды, возвращающие объект DataReader (такие, как SELECT);
• DataReader — предоставляет доступный только для однонаправленного чтения
набор записей, подключенный к источнику данных;
• DataAdapter — заполняет отсоединенный объект DataSet или DataTable и обнов-
ляет его содержимое.
Примечание Если в тексте этой главы название класса компонента приводится без
префикса, указывающего его версию, сказанное в равной мере относится к обоим
версиям провайдеров данных. Например, Command означает как OleDbCommand,ia.K
и SqlCommand.
Доступ к данным в ADO.NET осуществляется так: объект Connection устанавли-
вает между приложением и БД соединение, напрямую доступное объектам Command
и DataAdapter. Объект Command позволяет исполнять команды непосредственно над
БД. Если исполненная команда возвращает несколько значений, Command откры-
вает к ним доступ через объект DataReader. Полученные результаты можно обраба-
тывать напрямую, используя код приложения, либо через объект DataSet, заполнив
его при помощи объекта DataAdapter. Для обновления БД также применяют объек-
ты Command или DataAdapter.
В следующих разделах приводятся общие сведения об универсальных классах
компонентов провайдеров данных.
Объект Connection
Объект Connection представляет соединение с БД. Visual Studio .NET поддерживает
два класса Connection: SqlConnection, предназначенный для подключения к SQL
Server версии 7.0 и выше, и OleDbConnection., который применяется для подключе-
ния к самым разным БД. Все данные, необходимые для открытия канала связи с
БД, хранятся в свойстве ConnectionSiring объекта Connection, этот объект также под-
держивает ряд методов, позволяющих обрабатывать данные с применением тран-
закций.
Объект Command
Объект Command также представлен двумя классами — SglCommandu OleDbCommand.
Он позволяет исполнять команды над БД, используя для обмена данными
установленное соединение. При помощи объектов Command можно исполнять хра-
нимые процедуры, команды SQL, а также операторы, возвращающие целые табли-
цы. Объект Command поддерживает три метода:
• ExecuteNonQuery. Исполняет команды, не возвращающие данные, например
INSERT, UPDATE и DELETE;
• Execute Scalar. Исполняет запросы к БД, возвращающие единственное значение;
• Execute Reader. Возвращает результирующий набор через объект DataReader.
Объект DataReader
Объект DataReader предоставляет поток с набором записей БД, доступный только
для однонаправленного чтения. Б отличие от других компонентов провайдера дан-
ных, создавать экземпляры DataReader напрямую не разрешается, его можно полу-
чить при помощи методов ExecuteReader объекта Command: метод SqlCommand.Ехеси-
teReader возвращает объект SglData Reader, а метод OleDbCommand. ExecuteReader —
объект OleDbDataReader. Если записывать содержимое объекта DataReader на диск
не требуется, строки с данными можно передавать приложению напрямую По-
скольку в любой момент времени в памяти находится только одна строка, исполь-
зование объекта DataReader почти не снижает производительность системы, но тре-
бует монопольного доступа к открытому объекту Connection в течение времени жиз-
ни объекта DataReader.
Объект DataAdapter
DataAdapter — это основной класс ADO.NET, обеспечивающий доступ к отсоеди-
ненным данным. В сущности, он выполняет функции посредника во взаимодей-
ствии между БД и объектом DataSet. При вызове метода Fill объект DataAdapter за-
полняет Data Table или DataSet данными, полученными из БД. После обработки дан-
ных, загруженных в память, можно записать модифицированные записи в БД, вы-
звав метод Update объекта DataAdapter. У DataAdapter имеются четыре свойства, 11ред-
ставляюших команды БД:
• Select Command. Содержит текст или объект команды, осуществляющей выборку
данных из БД; при вызове метода Fill эта команда исполняется и заполняет
объект DataTable или объект DataSet',
• Insert Command. Содержит текст или объект команды, осуществляющий вставку
строк в таблицу;
• DeleteCommand. Содержит текст или объект команды, осуществляющий удале-
ние строки из таблицы;
• UpdateCommand. Содержит текст или объект команды, осуществляющий обнов-
ление значений в БД.
При вызове метода Update все измененные данные копируются из объекта Data-
Set в БД с исполнением соответствующей команды InsertCommand, DeleteCommand
или UpdateCommand.

Теги: .NET

Статьи по теме:

Разрешения
Генерация исключений
Объявление и генерация событий
Работа в редакторе кода
Рекурсия
Работа с классом Help
Отладка элементов управления
Создание класса строго типизированного набора на основе класса CollectionBase
Рисование простых фигур
Пространства имен System.Drawing
Свойства по умолчанию и индексаторы
Создание экземпляров элементов управления ActiveX
Модификаторы доступа к членам
Развертывание приложений с помощью XCOPY
Компонент ErrorProvider
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Архитектура данных ADO.NET. Регион сайта: Москва и Санкт-Петербург