Поставщики данных .NET Framework (ADO.NET)

Обновлен: November 2007

Поставщик данных .NET Framework используется для установления соединения с базой данных, выполнения команд и получения результатов. Эти результаты либо обрабатываются непосредственно путем передачи объекту DataSet с целью предоставления их пользователю по мере необходимости в сочетании с данными из нескольких источников, либо удаленно распределяются между несколькими уровнями. Поставщики данных .NET Framework являются облегченными и создают минимальный уровень между источником данных и кодом, что позволяет увеличить производительность без ущерба функциональности.

В следующей таблице приведен список поставщиков данных .NET Framework.

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

Описание

.NET Framework Поставщик данных для SQL Server

Предоставляет доступ к данным для Microsoft SQL Server 7.0 или более поздних версий. Использует пространство имен System.Data.SqlClient.

.NET Framework Поставщик данных для OLE DB

Для источников данных OLE DB. Использует пространство имен System.Data.OleDb.

.NET Framework Поставщик данных для ODBC

Для источников данных ODBC. Использует пространство имен System.Data.Odbc.

.NET Framework Поставщик данных для Oracle

Для источников данных Oracle. Источник данных .NET Framework для Oracle поддерживает клиентское программное обеспечение версии 8.1.7 и старше и использует пространство имен System.Data.OracleClient.

Поставщик EntityClient

Предоставляет доступ к данным для приложений модели EDM (Entity Data Model). Использует пространство имен System.Data.EntityClient.

Основные объекты поставщиков данных .NET Framework

В следующей таблице приведены четыре основных объекта, из которых состоит поставщик данных .NET Framework.

Объект

Описание

Connection

Устанавливает соединение с конкретным источником данных. Базовым классом для всех объектов Connection является DbConnection.

Command

Выполняет команду в источнике данных. Обеспечивает доступность Parameters и может выполнять команды в области Transaction из Connection. Базовым классом для всех объектов Command является DbCommand.

DataReader

Считывает из источника данных однопроходный поток данных только для чтения. Базовым классом для всех объектов DataReader является DbDataReader.

DataAdapter

Заполняет DataSet и выполняет обновления в источнике данных. Базовым классом для всех объектов DataAdapter является DbDataAdapter.

Кроме приведенных выше основных классов поставщик данных .NET Framework содержит классы, представленные в следующей таблице.

Объект

Описание

Transaction

Прикрепляет команды к транзакциям в источнике данных. Базовым классом для всех объектов Transaction является DbTransaction. ADO.NET также поддерживает транзакции, использующие классы в пространстве имен System.Transactions.

CommandBuilder

Объект помощника, автоматически формирующий свойства команд DataAdapter или извлекающий сведения о параметрах из хранимой процедуры и заполняющий коллекцию Parameters объекта Command. Базовым классом для всех объектов CommandBuilder является DbCommandBuilder.

ConnectionStringBuilder

Объект помощника, обеспечивающий простой способ создания и управления содержимым строки соединения, которую используют объекты Connection. Базовым классом для всех объектов ConnectionStringBuilder является DbConnectionStringBuilder.

Parameter

Определяет входные, выходные и возвращаемые значения параметров для команд и хранимых процедур. Базовым классом для всех объектов Parameter является DbParameter.

Exception

Возвращается при возникновении ошибки в источнике данных. Для ошибок клиентов поставщики данных .NET Framework вызывают исключение .NET Framework. Базовым классом для всех объектов Exception является DbException.

Error

Отображает сведения, относящиеся к предупреждениям и ошибкам, возвращенным источником данных.

ClientPermission

Атрибуты управления доступом, поставляемые с кодом поставщика данных .NET Framework. Базовым классом для всех объектов ClientPermission является DBDataPermission.

.Поставщик данных .NET Framework для SQL Server (SqlClient)

Поставщик данных .NET Framework для SQL Server (SqlClient) использует для взаимодействия с SQL Server собственный протокол. Это простой и высокопроизводительный протокол, оптимизированный для прямого доступа к SQL Server без добавления уровней OLE DB или ODBC. На рисунке ниже сравнивается поставщик данных .NET Framework для SQL Server с поставщиком данных .NET Framework для OLE DB. Поставщик данных .NET Framework для OLE DB связывается с источником данных OLE DB с помощью компонента службы OLE DB, предоставляющим пулы соединений и службы транзакций, и поставщиком OLE DB для источника данных.

a6cd7c08.alert_note(ru-ru,VS.90).gifПримечание.

Поставщик данных .NET Framework для ODBC имеет схожую архитектуру с поставщиком данных .NET Framework для OLE DB. Например, он вызывает компонент службы ODBC.

Сравнение поставщика данных .NET Framework для SQL Server с поставщиком данных .NET Framework для OLE DB
Поставщики данных

Для использования поставщика данных .NET Framework для SQL Server необходим доступ к версии SQL Server 7.0 или более поздней версии. Поставщик данных .NET Framework для классов SQL Server находится в пространстве имен System.Data.SqlClient. Для более ранних версий SQL Server используется поставщик данных .NET Framework для OLE DB с поставщиком OLE DB SQL Server System.Data.OleDb.

Поставщик данных .NET Framework для SQL Server поддерживает как локальные, так и распределенные транзакции. Для распределенных транзакций поставщик данных .NET Framework для SQL Server по умолчанию автоматически задействуется в транзакции и получает сведения о транзакциях из служб компонентов Windows или System.Transactions. Дополнительные сведения см. в разделе Транзакции и параллелизм (ADO.NET).

Следующий пример кода показывает, как включать в приложения пространство имен System.Data.SqlClient.

Imports System.Data.SqlClient
using System.Data.SqlClient;

.Поставщик данных .NET Framework для OLE DB

Поставщик данных .NET Framework для OLE DB (OleDb) обеспечивает доступ к данным с помощью собственной реализации OLE DB через COM-взаимодействие. Поставщик данных .NET Framework для OLE DB поддерживает как локальные, так и распределенные транзакции. Для распределенных транзакций поставщик данных .NET Framework для OLE DB по умолчанию автоматически задействуется в транзакции и получает сведения о транзакциях из служб компонентов Windows 2000. Дополнительные сведения см. в разделе Транзакции и параллелизм (ADO.NET).

В следующей таблице представлены поставщики данных, протестированные на совместимость с ADO.NET.

Драйвер

Поставщик

SQLOLEDB

Поставщик OLE DB для служб SQL Server (Майкрософт)

MSDAORA

Поставщик Microsoft OLE DB для Oracle

Microsoft.Jet.OLEDB.4.0

Поставщик OLE DB для Microsoft Jet

a6cd7c08.alert_note(ru-ru,VS.90).gifПримечание.

Использование базы данных Access (Jet) в качестве источника данных для многопоточных приложений, например приложений ASP.NET, не рекомендуется. Если требуется использовать Jet в качестве источника данных для приложения ASP.NET, нужно понимать, что приложения ASP.NET, связывающиеся с базой данных Access, могут столкнуться с проблемами соединения. Для решения проблем соединения ASP.NET и базой данных Access (Jet), см. статью Q316675, «PRB: Cannot Connect to Access Database from ASP.NET» в базе знаний Майкрософт.

Поставщик данных .NET Framework для OLE DB не поддерживает интерфейсы OLE DB версии 2.5. Поставщики OLE DB, которым требуется поддержка интерфейсов OLE DB 2.5, будут работать неправильно с поставщиками данных .NET Framework для OLE DB. Это относится к поставщику OLE DB для Exchange (Майкрософт) и поставщику Microsoft OLE DB для публикаций в Интернете.

Поставщик данных .NET Framework для OLE DB не работает с поставщиком OLE DB для ODBC (MSDASQL). Для доступа к источнику данных ODBC с помощью ADO.NET используется поставщик данных .NET Framework для ODBC.

Поставщик данных .NET Framework для классов OLE DB находится в пространстве имен System.Data.OleDb. Следующий пример кода показывает, как включать в приложения пространство имен System.Data.OleDb.

Imports System.Data.OleDb
using System.Data.OleDb;
a6cd7c08.alert_note(ru-ru,VS.90).gifПримечание.

Поставщик данных .NET Framework для OLE DB требует наличия компонентов MDAC 2.6 или более поздней версии. Рекомендуется использовать компоненты MDAC 2.8 с пакетом обновления 1 (SP1). Компоненты MDAC 2.8 с пакетом обновления 1 (SP1) можно загрузить на веб-узле Data Access and Storage Developer Center (центр разработчиков средств доступа к данным и их хранения).

.Поставщик данных .NET Framework для ODBC

Поставщик данных .NET Framework для ODBC (Odbc) использует для доступа к данным собственный диспетчер драйверов ODBC. Поставщик данных ODBC поддерживает как локальные, так и распределенные транзакции. Для распределенных транзакций поставщик данных ODBC по умолчанию автоматически задействуется в транзакции и получает сведения о транзакциях из служб компонентов Windows 2000. Дополнительные сведения см. в разделе Транзакции и параллелизм (ADO.NET).

В следующей таблице представлены драйверы ODBC, протестированные на совместимость с ADO.NET.

Драйвер

SQL Server

Microsoft ODBC для Oracle

Драйвер Microsoft Access (*.mdb)

Поставщик данных .NET Framework для классов ODBC находится в пространстве имен System.Data.Odbc.

Следующий пример кода показывает, как включать в приложения пространство имен System.Data.Odbc.

Imports System.Data.Odbc
using System.Data.Odbc;
a6cd7c08.alert_note(ru-ru,VS.90).gifПримечание.

Поставщик данных .NET Framework для ODBC требует MDAC 2.6 или более поздней версии, рекомендуется MDAC 2.8 с пакетом обновления 1 (SP1). Компоненты MDAC 2.8 с пакетом обновления 1 (SP1) можно загрузить на веб-узле Data Access and Storage Developer Center (центр разработчиков средств доступа к данным и их хранения).

.Поставщик данных .NET Framework для Oracle

Поставщик данных .NET Framework для Oracle (OracleClient) обеспечивает доступ к источникам данных Oracle через клиентское ПО Oracle для связи. Поставщик данных поддерживает клиентское ПО Oracle версии 8.1.7 или более поздней версии. Поставщик данных поддерживает как локальные, так и распределенные транзакции. Дополнительные сведения см. в разделе Транзакции и параллелизм (ADO.NET).

Поставщик данных .NET Framework для Oracle требует установки в системе клиентского ПО Oracle для связи (версии 8.1.7 или более поздней) до того, как можно будет соединяться с источником данных Oracle.

Поставщик данных .NET Framework для классов Oracle находится в пространстве имен System.Data.OracleClient и содержится в сборке System.Data.OracleClient.dll. При компиляции приложения, использующего этот источник данных, необходимо ссылаться как на System.Data.dll, так и на System.Data.OracleClient.dll.

В следующем примере кода показано, как включать в приложения пространство имен System.Data.OracleClient.

Imports System.Data
Imports System.Data.OracleClient
using System.Data;
using System.Data.OracleClient;

Выбор поставщика данных платформы .NET Framework

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

Поставщик

Примечания

.NET Framework Поставщик данных для SQL Server

Рекомендуется для приложений среднего уровня, использующих Microsoft SQL Server 7.0 или более поздней версии.

Рекомендуется для одноуровневых приложений, использующих Microsoft Database Engine (MSDE) или SQL Server 7.0 или более поздней версии.

Рекомендуется использовать поставщик OLE DB для SQL Server (SQLOLEDB) с поставщиком данных .NET Framework для OLE DB.

Для SQL Server 6.5 и более ранних версий необходимо использовать поставщик OLE DB для SQL Server с поставщиком данных .NET Framework для OLE DB.

.NET Framework Поставщик данных для OLE DB

Рекомендуется для приложений среднего уровня, использующих SQL Server 6.5 или более ранних версий.

Для SQL Server 7.0 и более поздних версий рекомендуется поставщик данных .NET Framework для SQL Server.

Кроме того, рекомендуется для одноуровневых приложений, использующих базы данных Microsoft Access. Базы данных Microsoft Access не рекомендуется использовать для приложений среднего уровня.

.NET Framework Поставщик данных для ODBC

Рекомендуется для приложений среднего уровня и одноуровневых приложений, использующих источники данных ODBC.

.NET Framework Поставщик данных для Oracle

Рекомендуется для приложений среднего уровня и одноуровневых приложений, использующих источники данных Oracle.

Поставщик EntityClient

Поставщик EntityClient используется для доступа к данным на основе модели EDM (Entity Data Model). В отличие от других поставщиков данных .NET этот поставщик не взаимодействует с источником данных непосредственно. Вместо этого для взаимодействия с соответствующим поставщиком данных используется язык Entity SQL. Дополнительные сведения см. в разделе EntityClient and Entity SQL.

См. также

Другие ресурсы

Общие сведения об ADO.NET

Получение и изменение данных в ADO.NET