Чтение онлайн

ЖАНРЫ

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Троелсен Эндрю

Шрифт:

Поставщик данных OLE DB, который скомпонован из типов, определенных в пространстве имен System.Data.OleDb, позволяет получить доступ к данным любого 'хранилища данных, поддерживающего классический протокол OLE DB на основе COM. С помощью этого поставщика данных можно связаться с любой базой данных OLE DB, просто настроив сегмент Provider строки соединения. При этом, однако, следует учитывать то, что поставщик OLE DB в фоновом режиме взаимодействует с различными объектами COM, а это может влиять на производительность приложения. В общем, поставщик данных OLE DB оказывается полезным только в том случае, когда приходится взаимодействовать с СУБД, не определяющей конкретного поставщика данных .NET.

Поставщик данных Microsoft SQL Server предлагает прямой доступ к хранилищам данных Microsoft SQL Server (версий 7.0 и выше) и только к хранилищам данных SQL Server. Пространство имен System.Data.SqlClient содержит типы, используемые поставщиком данных SQL Server

и предлагающие, в основном, те же функциональные возможности, что и поставщик данных OLE DB. Ключевым различием является то. что поставщик данных SQL Server действует в обход уровня OLE DB, а это обеспечивает ряд преимуществ с точки зрения производительности системы. Кроме того, поставщик данных Microsoft SQL Server позволяет получить доступ к некоторым уникальным возможностям данной конкретной СУБД.

Замечание. Если вас интересуют особенности использования пространств имен System.Data.SqlServerCe, System.Data.Odbc или System.Data.Oracle, за подробностями обратитесь к документации .NET Framework 2.0 SDK.

Поставщики данных других производителей

Вдобавок к поставщикам данных, предлагаемым компанией Microsoft, существуют поставщики данных других производителей, предназначенные для самых разных, как свободно доступных, так и коммерческих баз данных. В табл. 22.3 указано, где найти некоторые управляемые поставщики данных, не предлагаемые в комплекте инсталляции Microsoft .NET 2.0 (помните о том, что указанные здесь адреса URL могут измениться).

Таблица 22.3. Поставщики данных ADO.NET разных производителей

Поставщик данных Адрес web-страницы
Firebird Interbase http://www.mono-project.com/Firebird_Interbase
IBM DB2 http://www-306.ibm.com/software/data/db2
MySQL http://dev.mysql.com/downloads/connector/net/1.0.html
PostgreSQL http://www.mono-project.com/PostgreSQL
Sybase http://www.mono-project.com/Sybase

Замечание. Поскольку число поставщиков данных ADO.NET велико, в примерах этой главы будет использоваться поставщик данных Microsoft SQL Server (System.Data.SqlClient). После освоения материала, представленного на страницах этой главы, у вас не должно возникать проблем при использовании ADO.NET для взаимодействия с другими СУБД.

Дополнительные пространства имен ADO.NET

В дополнение к пространствам имен .NET, определяющим типы конкретного поставщика данных, библиотеки базовых классов предлагают ряд дополнительных пространств имен, связанных с ADO.NET (табл. 22.4).

Следует понимать, что эта глава не предполагает рассмотрение абсолютно всех типов из каждого пространства имен ADO.NET (для этого потребовалась бы отдельная книга). Но очень важно, чтобы вы поняли суть и возможности типов, предлагаемых в рамках пространства имен System.Data.

Таблица 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.

public interface IDbConnection: IDisposable {

 string ConnectionString { get; set; }

 int ConnectionTimeout { get; }

 string Database { get; }

 ConnectionState State { get; }

 IDbTransaction BeginTransaction;

 IDbTransaction BeginTransaction(IsolationLevel il);

 void ChangeDatabase(string databaseName);

 void Close;

 IDbCommand CreateCommand;

 void Open;

}

Интерфейс IDbTransaction

Поделиться с друзьями: