.NET Framework データ プロバイダー.NET Framework Data Providers

.NET Framework データ プロバイダーは、データベースへの接続、コマンドの実行と結果の取得に使用されます。A .NET Framework data provider is used for connecting to a database, executing commands, and retrieving results. その結果は、直接処理されるか、必要に応じてユーザーに公開されるように DataSet に格納されるか、取得したデータセットを複数のソースからのデータと組み合わせるか、または、層間でリモート処理されます。Those results are either processed directly, placed in a DataSet in order to be exposed to the user as needed, combined with data from multiple sources, or remoted between tiers. .NET framework データ プロバイダーは、データ ソースとコード間の最小限の層を作成するには、機能を損なうことがなくパフォーマンスの向上、軽量です。.NET Framework data providers are lightweight, creating a minimal layer between the data source and code, increasing performance without sacrificing functionality.

次の表には、.NET Framework に含まれているデータ プロバイダーが一覧表示します。The following table lists the data providers that are included in the .NET Framework.

.NET Framework データ プロバイダー.NET Framework data provider 説明Description
.NET Framework SQL Server 用データ プロバイダー.NET Framework Data Provider for SQL Server Microsoft SQL Server へのデータ アクセスを提供します。Provides data access for Microsoft SQL Server. System.Data.SqlClient 名前空間を使用してください。Uses the System.Data.SqlClient namespace.
.NET Framework Data Provider for OLE DB.NET Framework Data Provider for OLE DB OLE DB を使用して公開されるデータ ソースに対応。For data sources exposed by using OLE DB. System.Data.OleDb 名前空間を使用してください。Uses the System.Data.OleDb namespace.
.NET Framework Data Provider for ODBC.NET Framework Data Provider for ODBC ODBC を使用して公開されるデータ ソースに対応。For data sources exposed by using ODBC. System.Data.Odbc 名前空間を使用してください。Uses the System.Data.Odbc namespace.
.NET Framework Oracle 用データ プロバイダー.NET Framework Data Provider for Oracle Oracle データ ソースに対応。For Oracle data sources. .NET Framework Data Provider for Oracle サポートの Oracle クライアント ソフトウェア version 8.1.7 以降を使用して、System.Data.OracleClient名前空間。The .NET Framework Data Provider for Oracle supports Oracle client software version 8.1.7 and later, and uses the System.Data.OracleClient namespace.
EntityClient プロバイダーEntityClient Provider エンティティ データ モデル (EDM) アプリケーションにデータ アクセスを提供します。Provides data access for Entity Data Model (EDM) applications. System.Data.EntityClient 名前空間を使用してください。Uses the System.Data.EntityClient namespace.
.NET framework Data Provider for SQL Server Compact 4.0。.NET Framework Data Provider for SQL Server Compact 4.0. Microsoft SQL Server Compact 4.0 のデータ アクセスを提供します。Provides data access for Microsoft SQL Server Compact 4.0. System.Data.SqlServerCe 名前空間を使用します。Uses the System.Data.SqlServerCe namespace.

.NET Framework Data Providers の核となるオブジェクトCore Objects of .NET Framework Data Providers

次の表では、.NET Framework データ プロバイダーを構成する 4 つの主要なオブジェクトについて説明します。The following table outlines the four core objects that make up a .NET Framework data provider.

ObjectObject 説明Description
Connection 特定のデータ ソースへの接続を確立します。Establishes a connection to a specific data source. すべての Connection オブジェクトの基本クラスは DbConnection クラスです。The base class for all Connection objects is the DbConnection class.
Command データ ソースに対してコマンドを実行します。Executes a command against a data source. Parameters を公開し、Transaction から Connection のスコープ内で実行できます。Exposes Parameters and can execute in the scope of a Transaction from a Connection. すべての Command オブジェクトの基本クラスは DbCommand クラスです。The base class for all Command objects is the DbCommand class.
DataReader データ ソースから、前方参照専用で読み取り専用のデータ ストリームを読み取ります。Reads a forward-only, read-only stream of data from a data source. すべての DataReader オブジェクトの基本クラスは DbDataReader クラスです。The base class for all DataReader objects is the DbDataReader class.
DataAdapter DataSet にデータ ソースのデータを読み込んだり、データ ソースの更新内容を解決したりします。Populates a DataSet and resolves updates with the data source. すべての DataAdapter オブジェクトの基本クラスは DbDataAdapter クラスです。The base class for all DataAdapter objects is the DbDataAdapter class.

コア クラスは、このドキュメントで前述の表に、.NET Framework データ プロバイダーには、次の表に記載されているクラスも含まれています。In addition to the core classes listed in the table earlier in this document, a .NET Framework data provider also contains the classes listed in the following table.

ObjectObject 説明Description
Transaction データ ソースでトランザクション内にコマンドを追加します。Enlists commands in transactions at the data source. すべての Transaction オブジェクトの基本クラスは DbTransaction クラスです。The base class for all Transaction objects is the DbTransaction class. ADO.NET は、 System.Transactions 名前空間のクラスを使ったトランザクションもサポートします。ADO.NET also provides support for transactions using classes in the System.Transactions namespace.
CommandBuilder DataAdapter のコマンド プロパティを自動的に生成したり、ストアド プロシージャからパラメーター情報を取得したり、Parameters オブジェクトの Command コレクションにパラメーターを設定したりするためのヘルパー オブジェクトです。A helper object that automatically generates command properties of a DataAdapter or derives parameter information from a stored procedure and populates the Parameters collection of a Command object. すべての CommandBuilder オブジェクトの基本クラスは DbCommandBuilder クラスです。The base class for all CommandBuilder objects is the DbCommandBuilder class.
ConnectionStringBuilder Connection オブジェクトが使用する接続文字列を簡単に作成および管理するためのヘルパー オブジェクトです。A helper object that provides a simple way to create and manage the contents of connection strings used by the Connection objects. すべての ConnectionStringBuilder オブジェクトの基本クラスは DbConnectionStringBuilder クラスです。The base class for all ConnectionStringBuilder objects is the DbConnectionStringBuilder class.
Parameter コマンドやストアド プロシージャの入力パラメーター、出力パラメーター、および戻り値パラメーターを定義します。Defines input, output, and return value parameters for commands and stored procedures. すべての Parameter オブジェクトの基本クラスは DbParameter クラスです。The base class for all Parameter objects is the DbParameter class.
Exception データ ソースでエラーが検出されたときに返されます。Returned when an error is encountered at the data source. クライアントで検出されたエラー、.NET Framework データ プロバイダーは、.NET Framework の例外をスローします。For an error encountered at the client, .NET Framework data providers throw a .NET Framework exception. すべての Exception オブジェクトの基本クラスは DbException クラスです。The base class for all Exception objects is the DbException class.
Error データ ソースから返された警告またはエラー情報を公開します。Exposes the information from a warning or error returned by a data source.
ClientPermission .NET Framework データ プロバイダーのコード アクセス セキュリティ属性に対して用意されています。Provided for .NET Framework data provider code access security attributes. すべての ClientPermission オブジェクトの基本クラスは DBDataPermission クラスです。The base class for all ClientPermission objects is the DBDataPermission class.

SQL Server (SqlClient) の .NET framework Data Provider.NET Framework Data Provider for SQL Server (SqlClient)

For SQL Server (SqlClient) には、.NET Framework Data Provider は、SQL Server との通信に独自のプロトコルを使用します。The .NET Framework Data Provider for SQL Server (SqlClient) uses its own protocol to communicate with SQL Server. これは軽量は OLE DB、またはオープン データベース コネクティビティ (ODBC) のレイヤーを追加せずに直接 SQL Server へのアクセスに最適化されるためを実行します。It is lightweight and performs well because it is optimized to access a SQL Server directly without adding an OLE DB or Open Database Connectivity (ODBC) layer. 次の図は、for SQL Server、.NET Framework Data Provider、.NET Framework Data Provider for OLE DB 対照的です。The following illustration contrasts the .NET Framework Data Provider for SQL Server with the .NET Framework Data Provider for OLE DB. .NET Framework Data Provider for OLE DB 接続プールを提供する OLE DB サービス コンポーネントと、トランザクション サービスとデータ ソースの OLE DB プロバイダーの両方で、OLE DB データ ソースと通信します。The .NET Framework Data Provider for OLE DB communicates to an OLE DB data source through both the OLE DB Service component, which provides connection pooling and transaction services, and the OLE DB provider for the data source.

注意

.NET Framework Data Provider for ODBC は、for OLE DB に、.NET Framework Data Provider に同様のアーキテクチャを持つたとえば、ODBC Service コンポーネントを呼び出します。The .NET Framework Data Provider for ODBC has a similar architecture to the .NET Framework Data Provider for OLE DB; for example, it calls into an ODBC Service Component.

データ プロバイダーData providers
.NET Framework Data Provider for SQL Server と .NET Framework Data Provider for OLE DB の比較Comparison of the .NET Framework Data Provider for SQL Server and the .NET Framework Data Provider for OLE DB

SQL Server クラスの .NET Framework データ プロバイダーにある、System.Data.SqlClient名前空間。The .NET Framework Data Provider for SQL Server classes are located in the System.Data.SqlClient namespace.

.NET Framework Data Provider for SQL Server では、ローカルおよび分散トランザクションをサポートします。The .NET Framework Data Provider for SQL Server supports both local and distributed transactions. 分散トランザクションの場合、.NET Framework Data Provider for SQL Server を既定では、自動的にトランザクションに参加し、Windows コンポーネント サービスからトランザクションの詳細を取得またはSystem.Transactionsします。For distributed transactions, the .NET Framework Data Provider for SQL Server, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services or System.Transactions. 詳細については、次を参照してください。トランザクションと同時実行します。For more information, see Transactions and Concurrency.

名前空間 System.Data.SqlClient をユーザーのアプリケーションにインクルードする方法を次のコード サンプルで示します。The following code example shows how to include the System.Data.SqlClient namespace in your applications.

Imports System.Data.SqlClient  
using System.Data.SqlClient;  

.NET Framework Data Provider for OLE DB.NET Framework Data Provider for OLE DB

.NET Framework Data Provider for OLE DB (OleDb) では、COM 相互運用機能を介してネイティブ OLE DB を使用して、データ アクセスを有効にします。The .NET Framework Data Provider for OLE DB (OleDb) uses native OLE DB through COM interop to enable data access. .NET Framework Data Provider for OLE DB では、ローカルおよび分散トランザクションをサポートします。The .NET Framework Data Provider for OLE DB supports both local and distributed transactions. 分散トランザクションの場合、.NET Framework Data Provider for OLE DB、既定では自動的にトランザクションに参加し、Windows コンポーネント サービスからトランザクションの詳細を取得します。For distributed transactions, the .NET Framework Data Provider for OLE DB, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services. 詳細については、次を参照してください。トランザクションと同時実行します。For more information, see Transactions and Concurrency.

次の表では、ADO.NET を使用したテスト済みのプロバイダーを示します。The following table shows the providers that have been tested with ADO.NET.

ドライバーDriver プロバイダーProvider
SQLOLEDBSQLOLEDB Microsoft OLE DB provider for SQL ServerMicrosoft OLE DB provider for SQL Server
MSDAORAMSDAORA Microsoft OLE DB Provider for OracleMicrosoft OLE DB provider for Oracle
Microsoft.Jet.OLEDB.4.0Microsoft.Jet.OLEDB.4.0 OLE DB Provider for Microsoft JetOLE DB provider for Microsoft Jet

注意

ASP.NET アプリケーションなどのマルチ スレッド アプリケーションのデータ ソースとして Access (Jet) データベースを使用することは推奨されません。Using an Access (Jet) database as a data source for multithreaded applications, such as ASP.NET applications, is not recommended. ASP.NET アプリケーションのデータ ソースとして Jet を使用する必要がある場合、は、Access データベースに接続する ASP.NET アプリケーションに接続の問題が発生する可能性が認識してください。If you must use Jet as a data source for an ASP.NET application, realize that ASP.NET applications connecting to an Access database can encounter connection problems.

.NET Framework Data Provider for OLE DB は、OLE DB バージョン 2.5 のインターフェイスをサポートしていません。The .NET Framework Data Provider for OLE DB does not support OLE DB version 2.5 interfaces. OLE DB プロバイダーを OLE DB 2.5 インターフェイスのサポートを必要とするが正しく機能しないと、.NET Framework Data Provider for OLE DB。OLE DB Providers that require support for OLE DB 2.5 interfaces will not function correctly with the .NET Framework Data Provider for OLE DB. これには Microsoft OLE DB Provider for Exchange および Microsoft OLE DB Provider for Internet Publishing が含まれます。This includes the Microsoft OLE DB provider for Exchange and the Microsoft OLE DB provider for Internet Publishing.

.NET Framework Data Provider for OLE DB は、OLE DB provider for ODBC (MSDASQL) では機能しません。The .NET Framework Data Provider for OLE DB does not work with the OLE DB provider for ODBC (MSDASQL). ADO.NET を使用して ODBC データ ソースにアクセスするには、odbc、.NET Framework Data Provider を使用します。To access an ODBC data source using ADO.NET, use the .NET Framework Data Provider for ODBC.

OLE DB クラス用の .NET framework データ プロバイダーにある、System.Data.OleDb名前空間。.NET Framework Data Provider for OLE DB classes are located in the System.Data.OleDb namespace. 名前空間 System.Data.OleDb をユーザーのアプリケーションにインクルードする方法を次のコード サンプルで示します。The following code example shows how to include the System.Data.OleDb namespace in your applications.

Imports System.Data.OleDb  
using System.Data.OleDb;  

.NET Framework Data Provider for ODBC.NET Framework Data Provider for ODBC

.NET Framework Data Provider for ODBC (Odbc) では、ネイティブ ODBC ドライバー マネージャー (DM) を使用して、データ アクセスを有効にします。The .NET Framework Data Provider for ODBC (Odbc) uses the native ODBC Driver Manager (DM) to enable data access. ODBC データ プロバイダーはローカル トランザクションと分散トランザクションのどちらもサポートします。The ODBC data provider supports both local and distributed transactions. 分散トランザクションの場合、既定で、ODBC データ プロバイダーは自動的にトランザクションに参加し、トランザクションの詳細を Windows コンポーネント サービスから取得します。For distributed transactions, the ODBC data provider, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services. 詳細については、次を参照してください。トランザクションと同時実行します。For more information, see Transactions and Concurrency.

次の表では、ADO.NET を使用したテストの ODBC ドライバーを示します。The following table shows the ODBC drivers tested with ADO.NET.

ドライバーDriver
SQL ServerSQL Server
Microsoft ODBC for OracleMicrosoft ODBC for Oracle
Microsoft Access ドライバー (*.mdb)Microsoft Access Driver (*.mdb)

.NET framework Data Provider for ODBC クラスにある、System.Data.Odbc名前空間。.NET Framework Data Provider for ODBC classes are located in the System.Data.Odbc namespace.

名前空間 System.Data.Odbc をユーザーのアプリケーションにインクルードする方法を次のコード サンプルで示します。The following code example shows how to include the System.Data.Odbc namespace in your applications.

Imports System.Data.Odbc  
using System.Data.Odbc;  

注意

.NET Framework Data Provider for ODBC は、MDAC 2.6 または以降のバージョンが必要です。 および、MDAC 2.8 SP1 をお勧めします。The .NET Framework Data Provider for ODBC requires MDAC 2.6 or a later version, and MDAC 2.8 SP1 is recommended. MDAC 2.8 SP1 は「 データ アクセスおよびストレージ デベロッパー センター」からダウンロードできます。You can download MDAC 2.8 SP1 from the Data Access and Storage Developer Center.

.NET Framework Oracle 用データ プロバイダー.NET Framework Data Provider for Oracle

For Oracle (OracleClient) は、.NET Framework Data Provider には、Oracle クライアント接続ソフトウェアを通じて、Oracle データ ソースへのアクセスができるようにします。The .NET Framework Data Provider for Oracle (OracleClient) enables data access to Oracle data sources through Oracle client connectivity software. このデータ プロバイダーは Oracle クライアント ソフトウェア バージョン 8.1.7 以降をサポートしています。The data provider supports Oracle client software version 8.1.7 or a later version. データ プロバイダーはローカル トランザクションと分散トランザクションのどちらもサポートします。The data provider supports both local and distributed transactions. 詳細については、次を参照してください。トランザクションと同時実行します。For more information, see Transactions and Concurrency.

.NET Framework Data Provider for Oracle では、Oracle データ ソースに接続できる前に、システムに Oracle クライアント ソフトウェア (バージョン 8.1.7 またはそれ以降のバージョン) が必要です。The .NET Framework Data Provider for Oracle requires Oracle client software (version 8.1.7 or a later version) on the system before you can connect to an Oracle data source.

.NET framework Data Provider for Oracle クラスにある、System.Data.OracleClientに含まれている名前空間とは、System.Data.OracleClient.dllアセンブリ。.NET Framework Data Provider for Oracle classes are located in the System.Data.OracleClient namespace and are contained in the System.Data.OracleClient.dll assembly. このデータ プロバイダーを使用するアプリケーションをコンパイルする場合は、 System.Data.dllSystem.Data.OracleClient.dll の両方を参照する必要があります。You must reference both the System.Data.dll and the System.Data.OracleClient.dll when you compile an application that uses the data provider.

名前空間 System.Data.OracleClient をユーザーのアプリケーションにインクルードする方法を次のコード サンプルで示します。The following code example shows how to include the System.Data.OracleClient namespace in your applications.

Imports System.Data  
Imports System.Data.OracleClient  
using System.Data;  
using System.Data.OracleClient;  

.NET Framework データ プロバイダーの選択Choosing a .NET Framework Data Provider

アプリケーションのデザインとデータ ソースに依存 .NET Framework データ プロバイダーの選択はパフォーマンス、機能、およびアプリケーションの整合性を向上させることができます。Depending on the design and data source for your application, your choice of .NET Framework data provider can improve the performance, capability, and integrity of your application. 次の表では、長所と各 .NET Framework データ プロバイダーの制限事項について説明します。The following table discusses the advantages and limitations of each .NET Framework data provider.

プロバイダーProvider メモNotes
.NET Framework SQL Server 用データ プロバイダー.NET Framework Data Provider for SQL Server Microsoft SQL Server を使用する中間層アプリケーションをお勧めします。Recommended for middle-tier applications that use Microsoft SQL Server.

Microsoft Database Engine (MSDE) または SQL Server を使用する単層アプリケーションにお勧めします。Recommended for single-tier applications that use Microsoft Database Engine (MSDE) or SQL Server.

使用、OLE DB provider for SQL Server (SQLOLEDB) と、.NET Framework Data Provider for OLE DB をお勧めします。Recommended over use of the OLE DB provider for SQL Server (SQLOLEDB) with the .NET Framework Data Provider for OLE DB.
.NET Framework Data Provider for OLE DB.NET Framework Data Provider for OLE DB SQL Server では、このプロバイダーではなく、.NET Framework Data Provider for SQL Server が推奨されます。For SQL Server, the .NET Framework Data Provider for SQL Server is recommended instead of this provider.

Microsoft Access データベースを使用する単層アプリケーションに推奨されます。Recommended for single-tier applications that use Microsoft Access databases. Access データベースを中間層アプリケーションで使用することはお勧めできません。Use of an Access database for a middle-tier application is not recommended.
.NET Framework Data Provider for ODBC.NET Framework Data Provider for ODBC 中間層アプリケーションおよび単層アプリケーションで ODBC データ ソースを使用する場合に推奨します。Recommended for middle and single-tier applications that use ODBC data sources.
.NET Framework Oracle 用データ プロバイダー.NET Framework Data Provider for Oracle 中間層アプリケーションおよび単層アプリケーションで Oracle データ ソースを使用する場合に推奨します。Recommended for middle and single-tier applications that use Oracle data sources.

EntityClient プロバイダーEntityClient Provider

EntityClient プロバイダーは、エンティティ データ モデル (EDM) に基づくデータ アクセスで使用されます。The EntityClient provider is used for accessing data based on an Entity Data Model (EDM). 他の .NET Framework データ プロバイダーとは異なり、データ ソースと直接やり取りしません。Unlike the other .NET Framework data providers, it does not interact directly with a data source. 代わりに Entity SQL を使用して、基になるデータ プロバイダーと通信します。Instead, it uses Entity SQL to communicate with the underlying data provider. 詳細については、次を参照してください。 Entity Framework 用の EntityClient プロバイダーします。For more information, see EntityClient Provider for the Entity Framework.

関連項目See also