C#. ADO .NET. Поставщики данных (провайдеры). Пространства имен ADO .NET

Введение в ADO .NET. Поставщики данных (провайдеры). Пространства имен ADO .NET


Поиск на других ресурсах:

Содержание


1. Общие сведения об ADO .NET. Поставщики данных (провайдеры)

В платформу Microsoft .NET входит ряд пространств имен, содержащих средства взаимодействия как с локальными, так и с удаленными базами данных. Классы, размещаемые в этих пространствах имен, составляют основу технологии доступа к базам данных под названием ADO .NET (ActiveX Data Object для .NET).

Эти средства ADO .NET обеспечивают доступ к разным поставщикам данных (data provider), которые еще называют провайдерами. Каждый провайдер запрограммирован на взаимодействие с конкретной системой управления базами данных (СУБД). То есть, нет единого универсального набора классов (типов), которые взаимодействуют с разными СУБД.

Использование отдельного провайдера для доступа к соответствующей СУБД позволяет:

  • программировать особого поставщика данных для доступа к любой уникальной конкретной СУБД;
  • обеспечить прямое подключение конкретного поставщика данных к механизму СУБД без использования дополнительных межуровневых средств отображения.

Для каждого конкретного провайдера (поставщика данных) определено:

  • пространство имен с соответствующими типами (классами) непосредственно взаимодействующими с этим провайдером;
  • пространство имен, содержащее базовую функциональность, взаимодействующую с любым поставщиком данных.

 

2. Список объектов поставщиков данных. Таблица

В терминологии ADO .NET принято определять понятие объекта данных на основе его базового класса. Так, например, экземпляр класса DbConnection считается объектом Connection, а экземпляр класса DbCommand принято называть объектом Command.

В таблице ниже отображаются основные объекты поставщиков данных ADO .NET.

Тип объекта Базовый класс Интерфейс Назначение
Connection DbConnection IDbConnection Обеспечивает подключение к источнику данных и отключение от него, доступ к объектам транзакций.
Command DbCommand IDbCommand Реализует SQL-запрос или хранимую процедуру. Также обеспечивает доступ к объекту чтения данных конкретного поставщика данных
DataReader DbDataReader

IDataReader,

IDataRecord

Представляет доступ к данным только для чтения. Чтение данных происходит в одном направлении с помощью курсора на стороне сервера
DataAdapter DbDataAdapter

IDataAdapter,

IDbDataAdapter

Обеспечивает обмен данными между хранилищем данных и вызывающим процессом с помощью команд выборки, вставки, изменения и удаления информации
Parameter DbParameter

IDataParameter,

IDbDataParameter

Реализует именуемый параметр в параметризированном запросе
Transaction DbTransaction IDbTransaction Инкапсулирует транзакцию в базе данных

Из классов (интерфейсов) вышеприведенных основных объектов унаследованы классы конкретных провайдеров, имеющих префикс соответствующей СУБД.

Например, из класса DbConnection унаследованы классы SqlConnection, OracleConnection, OdbcConnection и OledbConnection. А из класса DbCommand унаследованы классы SqlCommand, OracleCommand, OdbcCommand, OledbCommand.

На рисунке 1 показано взаимодействие клиентского приложения с базой данных через поставщика данных (провайдера).

C#. ADO .NET. Взаимодействие клиентского приложения с базой данных

Рисунок 1. Взаимодействие клиентского приложения с базой данных

Клиентским приложением может быть любой тип приложения: консольное приложение, приложение типа Windows Forms, WPF-приложение, веб-страница ASP .NET, WCF-служба, кодовая библиотека .NET и т.д.

 

3. Поставщики данных (провайдеры). Перечень. Пространства имен

В пакет .NET Framework входит набор средств для работы с разными Microsoft поставщиками данных и поставщиками данных других разработчиков (в частности, Oracle).

Ниже в таблице отображаются поставщики данных, поддерживаемые в .NET Framework. Для каждого поставщика указываются:

  • пространства имен, которые нужно подключить при использовании;
  • имена сборок, содержащих реализацию.
Поставщик данных Пространство имен Сборка
Microsoft SQL Server System.Data.OleDb System.Data.Dll
Microsoft SQL Server Mobile System.Data.SqlClient System.Data.Dll
ODBC System.Data.SqlServerCe System.Data.SqlServerCe.dll
OLE DB System.Data.Odbc System.Data.Dll
Oracle Client System.Data.OracleClient System.Data.OracleClient.dll

Ниже приведена краткая характеристика каждого провайдера.

3.1. Microsoft SQL Server. Поставщик данных Microsoft SQL Server обеспечивает прямой доступ к базам данных типа SQL Server. Все необходимые средства работы с этим провайдером размещаются в пространстве имен System.Data.SqlClient. Соответственно строка подключения этого пространства имен на языке C# будет следующей:

using System.DataSqlClient;

3.2. OLE DB (Object Linking and Embedding, Database). Поставщик данных OLE DB имеет такую же базовую функциональность, что и Microsoft SQL Server. Однако этот поставщик использует дополнительный уровень взаимодействия с базой данных, что дает снижение производительности по сравнению с Microsoft SQL Server. Провайдер OLE DB необходимо использовать, если возникает необходимость взаимодействия с базой данных Microsoft Access.

Данный провайдер поставляется в пространстве имен System.Data.OleDb. Соответственно строка подключения провайдера OLE DB будет следующая:

using System.Data.OleDb;

3.3. ODBC (Open DataBase Connectivity). Это программный интерфейс для различных разработчиков при создании приложений, использующих доступ к данным без использования конкретного провайдера. Чтобы использовать средства ODBC, нужно подключить пространство имен System.Data.Odbc

using System.Data.Odbc;

3.4. Oracle Client. Поставщик данных Oracle Client предназначен для взаимодействия с базами данных Oracle. Существует две возможные разновидности сборок этого типа провайдера. Первая сборка от компании Microsoft, размещаемая в пространстве имен System.Data.OracleClient.dll. Вторая – от компании Oracle, которую можно скачать с официального сайта Oracle www.oracle.com.

3.5. Сторонние поставщики данных ADO .NET. Технология ADO .NET позволяет подключать сторонних поставщиков для доступа к СУБД любого типа. Эти системы могут быть как коммерческие, так и с открытым исходным кодом. Примерами таких поставщиков могут быть SQLite, IBM DB2, MySQL, PostgreSQL, TurboDB, Sybase и другие.

 

4. Дополнительные пространства имен. Перечень

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

  • Microsoft.SqlServer.Server – содержит типы для работы службы интеграции CLR и SQL Server 2005;
  • System.Data – определяет основные типы ADO .NET, используемые всеми провайдерами. Пространство имен содержит базовые классы и интерфейсы, представляющие автономный (отключенный) уровень (режим) взаимодействия с базой данных;
  • System.Data.Common – содержит типы для совместного использования всеми поставщиками ADO.NET. Сюда также входят общие абстрактные классы;
  • System.Data.Sql – содержит типы (классы), определяющие объекты Microsoft SQL Server, которые установлены в текущей локальной сети;
  • System.Data.SqlTypes – содержит типы, используемые Microsoft SQL Server, а также поддержку типов CLR;
  • System.Data.EntityClient – ​​содержит типы, обеспечивающие функциональность уровня клиента сущности. Эти типы отображают концепцию Entity Framework для поставщика данных ADO.NET.

 


Связанные темы