Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот поставщик данных платформы .NET Framework используется для подключения к базе данных, выполнения команд и получения результатов. Эти результаты обрабатываются напрямую, помещаются в DataSet для их предоставления пользователям по мере необходимости, комбинируются с данными из множества источников или передаются между уровнями. Поставщики данных .NET Framework являются легковесными, создавая минимальный слой между источником данных и кодом, повышая производительность без ущерба для функциональности.
Для новых приложений SQL Server используйте Microsoft.Data.SqlClient. Установите этот поставщик в виде пакета NuGet, а не используйте поставщик System.Data.SqlClient, встроенный в .NET Framework. Для существующего приложения следуйте руководству по миграции.
Microsoft.Data.SqlClient
Поставщик Microsoft.Data.SqlClient поддерживает приложения .NET и .NET Framework. Инструкции по установке и сведения о поддерживаемых целевых платформах см. в разделе Download Microsoft.Data.SqlClient.
После установки пакета импортируйте его пространство имен:
Imports Microsoft.Data.SqlClient
using Microsoft.Data.SqlClient;
Примеры кода на C# и Visual Basic см. в примерах работающего кода ADO.NET.
Поставщики, включенные в .NET Framework
В следующей таблице перечислены поставщики данных, включенные в платформа .NET Framework.
| Поставщик данных .NET Framework | Описание |
|---|---|
| Поставщик данных .NET Framework для SQL Server | Предоставляет доступ к данным для Microsoft SQL Server. Использует пространство имен 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 поддерживает клиентское программное обеспечение Oracle версии 8.1.7 и более поздних версий и использует пространство имен System.Data.OracleClient. |
| EntityClient - поставщик | Предоставляет доступ к данным для приложений модели EDM (Entity Data Model). Использует пространство имен System.Data.EntityClient . |
| Поставщик данных .NET Framework для SQL Server Compact 4.0. | Предоставляет доступ к данным для Microsoft SQL Server Compact 4.0. Использует пространство имен System.Data.SqlServerCe . |
Основные объекты поставщиков данных .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 или Open Database Connectivity (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 находится в System.Data.SqlClient пространстве имен.
Поставщик данных платформа .NET Framework для SQL Server поддерживает как локальные, так и распределенные транзакции. Для распределенных транзакций поставщик данных на платформе .NET Framework для SQL Server по умолчанию автоматически участвует в транзакции и получает сведения о транзакции из служб компонентов Windows или System.Transactions. Дополнительные сведения см. в разделе "Транзакции и параллелизм".
Для новых приложений используйте отдельный распределенный Microsoft.Data.SqlClient пакет, описанный в Microsoft. Data.SqlClient, а не встроенный поставщик.
Поставщик данных .NET Framework для OLE DB
Поставщик данных .NET Framework для OLE DB (OleDb) использует собственный OLE DB через COM-взаимодействие для обеспечения доступа к данным. Поставщик данных платформа .NET Framework для OLE DB поддерживает как локальные, так и распределенные транзакции. Для распределенных транзакций поставщик данных платформа .NET Framework для OLE DB по умолчанию автоматически входит в транзакцию и получает сведения о транзакциях из служб компонентов Windows. Дополнительные сведения см. в разделе "Транзакции и параллелизм".
В следующей таблице показаны поставщики, которые были протестированы с помощью ADO.NET.
| Драйвер | Поставщик |
|---|---|
| SQLOLEDB | Поставщик MICROSOFT 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, могут столкнуться с проблемами подключения.
Поставщик данных платформа .NET Framework для OLE DB не поддерживает интерфейсы OLE DB версии 2.5. Поставщики OLE DB, требующие поддержки интерфейсов OLE DB 2.5, не будут работать правильно с поставщиком данных для OLE DB платформы .NET Framework. Это относится к поставщику 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 для ODBC
Поставщик данных .NET Framework для ODBC (Odbc) использует родной диспетчер драйверов ODBC (DM) для обеспечения доступа к данным. Поставщик данных ODBC поддерживает как локальные, так и распределенные транзакции. Для распределенных транзакций поставщик данных ODBC по умолчанию автоматически задействуется в транзакции и получает сведения о транзакциях из служб компонентов Windows. Дополнительные сведения см. в разделе "Транзакции и параллелизм".
В следующей таблице показаны драйверы 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) рекомендуется использовать эту версию.
Поставщик данных .NET Framework для Oracle
Поставщик данных платформа .NET Framework для Oracle (OracleClient) обеспечивает доступ к источникам данных Oracle через программное обеспечение подключения клиента Oracle. Поставщик данных поддерживает клиентское ПО Oracle версии 8.1.7 или более поздней версии. Поставщик данных поддерживает как локальные, так и распределенные транзакции. Дополнительные сведения см. в разделе "Транзакции и параллелизм".
Поставщик данных платформа .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.
| Поставщик | Примечания. |
|---|---|
| Microsoft.Data.SqlClient | Используйте для новых приложений SQL Server. Установите пакет NuGet Microsoft.Data.SqlClient. |
| Поставщик данных .NET Framework для OLE DB | Для SQL Server используйте Microsoft. Data.SqlClient вместо этого поставщика. Рекомендуется для одноуровневых приложений, использующих базы данных Microsoft Access. Базы данных Microsoft Access не рекомендуется использовать для приложений среднего уровня. |
| Поставщик данных .NET Framework для ODBC | Рекомендуется для приложений среднего уровня и одноуровневых приложений, использующих источники данных ODBC. |
| Поставщик данных .NET Framework для Oracle | Рекомендуется для приложений среднего уровня и одноуровневых приложений, использующих источники данных Oracle. |
EntityClient - поставщик
Поставщик EntityClient используется для доступа к данным на основе модели EDM (Entity Data Model). В отличие от других поставщиков данных .NET этот поставщик не взаимодействует с источником данных непосредственно. Вместо этого для взаимодействия с соответствующим поставщиком данных используется язык Entity SQL. Дополнительные сведения см. в разделе EntityClient Provider для Entity Framework.