ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Поставщик данных 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
Замечание. Если вас интересуют особенности использования пространств имен 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).
Следует понимать, что эта глава не предполагает рассмотрение абсолютно всех типов из каждого пространства имен ADO.NET (для этого потребовалась бы отдельная книга). Но очень важно, чтобы вы поняли суть и возможности типов, предлагаемых в рамках пространства имен System.Data.
Таблица 22.4. Дополнительные пространства имен, имеющие отношение к ADO.NET
Пространство имен | Описание |
---|---|
Misrosoft.SqlServer.Server | Новое пространство имен .NET 2.0; предлагает типы, позволяющие с помощью управляемых языков создавать хранимые процедуры для SQL Server 2005 |
System.Data | Определяет базовые типы ADO.NET, используемые всеми поставщиками данных |
System.Data.Common | Содержит типы, совместно используемые поставщиками данных, включая типы соответствующие модели источника поставщика данных .NET 2.0 |
System.Data.Design | Новое пространство имен .NET 2.0; предлагает различные типы, используемые при настройке пользовательских компонентов данных в режиме проектирования |
System.Data.Sql | Новое пространство имен .NET 2.0; предлагает типы, позволяющие выявлять экземпляры Microsoft SQL Server, установленные в локальной сети |
System.Data.SqlTypes | Содержит "собственные" типы данных Microsoft SQL Server. Хотя вы всегда можете использовать соответствующие типы данных CLR, типы SqlTypes оптимизированы специально для работы с SQL Server |
Типы System.Data
Пространство
имен System.Data является, так сказать, общим знаменателем для всех пространств имен ADO.NET. Вы просто не можете построить приложение ADO.NET, не указав это пространство имен в приложении доступа к данным. Эта пространство имен содержит типы, совместно используемые всеми поставщиками данных ADO.NET, независимо от лежащего в их основе типа хранилища данных. В дополнение к целому ряду исключений (NoNullAllowedException, RowNotInTableException, MissingPrimaryKeyExceeption и т.д.), связанных с доступом к базам данных. System.Data содержит типы, соответствующие как раз-личным примитивам (таблицам, строкам, столбцам, ограничениям и т.д.) базы данных, так и общим интерфейсам, реализуемым объектами поставщика данных, В табл. 22.5 предлагаются описания некоторых базовых типов этого пространства имен, о которых вам следует знать.Роль пространства имен DataSet, a также DataTable.DataRelation.DataRow и т.д. будет рассмотрена в этой главе позже. Нашей ближайшей задачей будет рассмотрение базовых интерфейсов System.Datа, так сказать, с общей точки зрения. чтобы лучше понять общие функциональные возможности, предлагаемые всеми поставщиками данных. Конкретные детали будут обсуждаться в процессе изложения материала этой главы, а сейчас мы сосредоточимся на общем поведении каждого из имеющихся типов интерфейса.
Таблица 22.5. Базовые члены пространства имен System.Data
Тип | Описание |
---|---|
Constraint | Представляет ограничение для данного объекта DataColumn |
DataColumn | Представляет отдельный столбец в рамках объекта DataTable |
DataRelation | Представляет отношение "родитель-потомок" между двумя объектами DataTable |
DataRow | Представляет отдельную строку в рамках объекта DataTable |
DataSet | Представляет хранимые в памяти данные, скомпонованные на основе любого числа взаимно связанных объектов DataTable |
DataTable | Представляет табличный блок данных в памяти |
DataTableReader | Позволяет доступ к DataTable в режиме однонаправленного курсора (только для чтения); этот тип появился в .NET 2.0 |
DataView | Обеспечивает пользовательское представление для DataTable с использованием сортировки, фильтрации, поиска, редактирования и навигации |
IDataAdapter | Определяет базовое поведение объекта адаптера данных |
IDataParameter | Определяет базовое поведение объекта параметра |
IDataReader | Определяет базовое поведение объекта чтения данных |
IDbCommand | Определяет базовое поведение объекта команды |
IDbDataAdapter | Расширяет IDataAdapter с целью получения дополнительных функциональных возможностей объекта адаптера данных |
IDbTransaction | Определяет базовое поведение объекта транзакции |
Интерфейс IDbConnection
Тип IDbConnection реализуется объектом соединения поставщика данных, Этот интерфейс определяет множество членов, используемых для настройки соединения с конкретным хранилищем данных, а также позволяет получить объект транзакции поставщика данных. Вот формальное определение IDbConnection.
Интерфейс IDbTransaction