ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Замечание. Поскольку число поставщиков данных ADO.NET велико, в примерах этой главы будет использоваться поставщик данных Microsoft SQL Server (System.Data.SqlClient). После освоения материала, представленного на страницах этой главы, у вас не должно возникать проблем при использовании ADO.NET для взаимодействия с другими СУБД.
Дополнительные пространства имен ADO.NET
В дополнение к пространствам имен .NET, определяющим типы конкретного поставщика данных, библиотеки базовых классов предлагают ряд дополнительных пространств имен, связанных с ADO.NET (табл. 22.4).
Следует понимать, что эта глава не предполагает рассмотрение абсолютно всех типов из каждого пространства имен ADO.NET (для этого потребовалась бы отдельная книга). Но очень важно, чтобы вы поняли суть
Таблица 22.4. Дополнительные пространства имен, имеющие отношение к ADO.NET
Пространство имен | Описание |
---|---|
Misrosoft.SqlServer.Server | Новое пространство имен .NET 2.0; предлагает типы, позволяющие с помощью управляемых языков создавать хранимые процедуры для SQL Server 2005 |
System.Data | Определяет базовые типы ADO.NET, используемые всеми поставщиками данных |
System.Data.Common | Содержит типы, совместно используемые поставщиками данных, включая типы соответствующие модели источника поставщика данных .NET 2.0 |
System.Data.Design | Новое пространство имен .NET 2.0; предлагает различные типы, используемые при настройке пользовательских компонентов данных в режиме проектирования |
System.Data.Sql | Новое пространство имен .NET 2.0; предлагает типы, позволяющие выявлять экземпляры Microsoft SQL Server, установленные в локальной сети |
System.Data.SqlTypes | Содержит "собственные" типы данных Microsoft SQL Server. Хотя вы всегда можете использовать соответствующие типы данных CLR, типы SqlTypes оптимизированы специально для работы с SQL Server |
Типы System.Data
Пространство имен System.Data является, так сказать, общим знаменателем для всех пространств имен ADO.NET. Вы просто не можете построить приложение ADO.NET, не указав это пространство имен в приложении доступа к данным. Эта пространство имен содержит типы, совместно используемые всеми поставщиками данных ADO.NET, независимо от лежащего в их основе типа хранилища данных. В дополнение к целому ряду исключений (NoNullAllowedException, RowNotInTableException, MissingPrimaryKeyExceeption и т.д.), связанных с доступом к базам данных. System.Data содержит типы, соответствующие как раз-личным примитивам (таблицам, строкам, столбцам, ограничениям и т.д.) базы данных, так и общим интерфейсам, реализуемым объектами поставщика данных, В табл. 22.5 предлагаются описания некоторых базовых типов этого пространства имен, о которых вам следует знать.
Роль пространства имен DataSet, a также DataTable.DataRelation.DataRow и т.д. будет рассмотрена в этой главе позже. Нашей ближайшей задачей будет рассмотрение базовых интерфейсов System.Datа, так сказать, с общей точки зрения. чтобы лучше понять общие функциональные возможности, предлагаемые всеми поставщиками данных. Конкретные детали будут обсуждаться в процессе изложения материала этой главы, а сейчас мы сосредоточимся на общем поведении каждого из имеющихся типов интерфейса.
Таблица 22.5. Базовые члены пространства имен System.Data
Тип | Описание |
---|---|
Constraint | Представляет ограничение для данного объекта DataColumn |
DataColumn | Представляет отдельный столбец в рамках объекта DataTable |
DataRelation | Представляет отношение "родитель-потомок" между двумя объектами DataTable |
DataRow | Представляет отдельную строку в рамках объекта DataTable |
DataSet | Представляет хранимые в памяти данные, скомпонованные на основе любого числа взаимно связанных объектов DataTable |
DataTable | Представляет
|
DataTableReader | Позволяет доступ к DataTable в режиме однонаправленного курсора (только для чтения); этот тип появился в .NET 2.0 |
DataView | Обеспечивает пользовательское представление для DataTable с использованием сортировки, фильтрации, поиска, редактирования и навигации |
IDataAdapter | Определяет базовое поведение объекта адаптера данных |
IDataParameter | Определяет базовое поведение объекта параметра |
IDataReader | Определяет базовое поведение объекта чтения данных |
IDbCommand | Определяет базовое поведение объекта команды |
IDbDataAdapter | Расширяет IDataAdapter с целью получения дополнительных функциональных возможностей объекта адаптера данных |
IDbTransaction | Определяет базовое поведение объекта транзакции |
Интерфейс IDbConnection
Тип IDbConnection реализуется объектом соединения поставщика данных, Этот интерфейс определяет множество членов, используемых для настройки соединения с конкретным хранилищем данных, а также позволяет получить объект транзакции поставщика данных. Вот формальное определение IDbConnection.
Интерфейс IDbTransaction
Как видите, перегруженный метод BeginTransaction, определенный интерфейсом IDbConnection, обеспечивает доступ к объекту транзакции поставщика данных. Используя члены, определенные интерфейсам IDbTransaction, вы можете осуществлять программное взаимодействие с сеансом транзакции и соответствующим хранилищем данных.
Интерфейс IDbCommand
Интерфейс IDbCommand будет реализован объектом команды поставщика данных. Как и в других объектных моделях доступа к данным, здесь объекты команд позволяют программно обрабатывать SQL-операторы, хранимые процедуры и параметризованные запросы. Кроме того, с помощью перегруженного метода ExecuteReader объекты команд обеспечивают доступ к объекту чтения данных поставщика данных,