Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на 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

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

Делегаты CTS
Циклические ссылки
Применение компонента HelpProvider
Команды для манипулирования данными
Применение наследования с формами
Перечисления CTS
Реализация полиморфизма через интерфейсы
Окна Locals, Autos и Watch
Объект DataRelation
Редактор файловой системы
Добавление элементов управления на панель Toolbox
Создание класса строго типизированного набора на основе класса CollectionBase
Использование провайдеров дополнительных свойств
Программа сертификации специалистов Microsoft
Строительные блоки .NET
| .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


     



Rambler's Top100

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

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