Поставщики данных .NET Framework (ADO.NET)
Поставщик данных .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 для источника данных.
Примечание |
---|
Поставщик данных .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 ServerSystem.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 |
Примечание |
---|
Использование базы данных 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;
Примечание |
---|
Поставщик данных .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;
Примечание |
---|
Поставщик данных .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.