Замечание.В соответствии с соглашением о присваивании имен объекты поставщика данных должны иметь префикс, указывающий имя соответствующей СУБД.
На рис. 22.1 показана общая структура поставщика данных ADO.NET. Заметьте, что в представленной диаграмме элемент Компоновочный блок клиента может обозначать практически любое приложение .NET – консольную программу, приложение Windows Forms, Web-страницу ASP.NET, Web-сервис XML, библиотеку программного кода .NET и т.д.
Конечно, в дополнение к объектам, показанным на рис. 22.1, поставщик данных предлагает и другие типы объектов. Однако указанные на рисунке базовые объекты присущи всем поставщикам данных.
Поставщики данных Microsoft
В дистрибутив Microsoft .NET 2.0 включен ряд поставщиков данных, в частности для Oracle, SQL Server и ODBC. В табл. 22.2 для поставщиков данных Microsoft ADO.NET указаны пространства имен и содержащие их компоновочные блоки.
Замечание.Специального поставщика данных, обращающегося непосредственно к механизму Jet (т.е. к Microsoft Access), нет. Для взаимодействия с файлами данных Access можно использовать поставщик данных OLE DB или ODBC.
Рис 22.1. Поставщики данных ADO.NET обеспечивают доступ к данным СУБД.
Таблица 22.2. Поставщики данных ADO.NET от Microsoft
Поставщик данных |
Пространство имен |
Компоновочный блок |
OLE DB |
System.Data.OleDb |
System.Data.dll |
Microsoft SQL Server |
System.Data.SqlClient |
System.Data.dll |
Microsoft SQL Server Mobile |
System.Data.SqlServerCe |
System.Data.SqlServerCe.dll |
ODBC |
System.Data.Odbc |
System.Data.dll |
Oracle |
System.Data.OracleClient |
System.Data.OracleClient.dll |
Поставщик данных 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).
Читать дальше