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

.NET Framework.NET Framework データ プロバイダーは、データベースに接続して、コマンドを実行したり、結果を取得したりする目的で使用されます。A .NET Framework.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 データ プロバイダーでは、データ ソースとコード間に形成される層が最小限で済むため、機能を犠牲にすることなく、パフォーマンスを高めることができます。.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.NET Frameworkに含まれているデータ プロバイダーを示します。The following table lists the data providers that are included in the .NET Framework.NET Framework.

.NET Framework.NET Framework データ プロバイダー data provider 説明Description
.NET Framework.NET Framework Data Provider for SQL Server 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.NET Framework Data Provider for OLE DB 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.NET Framework Data Provider for ODBC Data Provider for ODBC ODBC を使用して公開されるデータ ソースに対応。For data sources exposed by using ODBC. System.Data.Odbc 名前空間を使用してください。Uses the System.Data.Odbc namespace.
.NET Framework.NET Framework Data Provider for Oracle Data Provider for Oracle Oracle データ ソースに対応。For Oracle data sources. .NET Framework.NET Framework Data Provider for Oracle は、Oracle クライアント ソフトウェア バージョン 8.1.7 以降をサポートしています。 System.Data.OracleClient 名前空間を使用してください。The .NET Framework.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.NET Framework Data Provider for SQL Server Compact 4.0。 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.NET Framework データ プロバイダーを構成する核となる 4 つのオブジェクトの概要を、次の表に示します。The following table outlines the four core objects that make up a .NET Framework.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.NET Framework データ プロバイダーには次の表に示すクラスも含まれます。In addition to the core classes listed in the table earlier in this document, a .NET Framework.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 データ プロバイダーは .NET Framework.NET Framework 例外をスローします。For an error encountered at the client, .NET Framework.NET Framework data providers throw a .NET Framework.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.NET Framework データ プロバイダーにコード アクセス セキュリティ属性を提供します。Provided for .NET Framework.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)

.NET Framework.NET Framework Data Provider for SQL Server (SqlClient) では、独自のプロトコルを使用して SQL Server と通信します。The .NET Framework.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. 次の図とは異なり、 .NET Framework.NET Framework Data Provider for SQL Server で、 .NET Framework.NET Framework Data Provider for OLE DB します。The following illustration contrasts the .NET Framework.NET Framework Data Provider for SQL Server with the .NET Framework.NET Framework Data Provider for OLE DB. .NET Framework.NET Framework Data Provider for OLE DB は、接続プールとトランザクション サービスを提供する OLE DB Service コンポーネントと、データ ソース用の OLE DB プロバイダーの両方をとおして OLE DB データ ソースと通信します。The .NET Framework.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.NET Framework Data Provider for ODBC は、 .NET Framework.NET Framework Data Provider for OLE DB に似たアーキテクチャを持っています。たとえば、ODBC Service コンポーネントへの呼び出しを行います。The .NET Framework.NET Framework Data Provider for ODBC has a similar architecture to the .NET Framework.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

.NET Framework.NET Framework Data Provider for SQL Server のクラスにある、System.Data.SqlClient名前空間。The .NET Framework.NET Framework Data Provider for SQL Server classes are located in the System.Data.SqlClient namespace.

.NET Framework.NET Framework Data Provider for SQL Server は、ローカルおよび分散トランザクションをサポートしています。The .NET Framework.NET Framework Data Provider for SQL Server supports both local and distributed transactions. 分散トランザクションの場合、 .NET Framework.NET Framework Data Provider for SQL Server、既定では自動的にトランザクションに参加し、Windows コンポーネント サービスからトランザクションの詳細を取得またはSystem.Transactionsします。For distributed transactions, the .NET Framework.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.NET Framework Data Provider for OLE DB (OleDb) は、COM 相互運用機能を介してネイティブ OLE DB を使用することで、データへのアクセスを可能にします。The .NET Framework.NET Framework Data Provider for OLE DB (OleDb) uses native OLE DB through COM interop to enable data access. .NET Framework.NET Framework Data Provider for OLE DB はローカル トランザクションと分散トランザクションのどちらもサポートします。The .NET Framework.NET Framework Data Provider for OLE DB supports both local and distributed transactions. 分散トランザクションの場合、既定で、 .NET Framework.NET Framework Data Provider for OLE DB は自動的にトランザクションに参加し、トランザクションの詳細を Windows コンポーネント サービスから取得します。For distributed transactions, the .NET Framework.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.NETADO.NETとのテストが完了しているプロバイダーを次の表に示します。The following table shows the providers that have been tested with ADO.NETADO.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.NETASP.NET アプリケーションなどのマルチスレッド アプリケーションのデータ ソースとして Access (Jet) データベースを使用することはお勧めできません。Using an Access (Jet) database as a data source for multithreaded applications, such as ASP.NETASP.NET applications, is not recommended. ASP.NETASP.NET アプリケーションのデータ ソースとして Jet を使用する必要がある場合、 ASP.NETASP.NET アプリケーションから Access データベースへの接続で問題が発生することがあるので注意してください。If you must use Jet as a data source for an ASP.NETASP.NET application, realize that ASP.NETASP.NET applications connecting to an Access database can encounter connection problems.

.NET Framework.NET Framework Data Provider for OLE DB は OLE DB バージョン 2.5 のインターフェイスをサポートしていません。The .NET Framework.NET Framework Data Provider for OLE DB does not support OLE DB version 2.5 interfaces. OLE DB 2.5 インターフェイスのサポートを必要とする OLE DB Providers は、 .NET Framework.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.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.NET Framework Data Provider for OLE DB と OLE DB Provider for ODBC (MSDASQL) は併用できません。The .NET Framework.NET Framework Data Provider for OLE DB does not work with the OLE DB provider for ODBC (MSDASQL). ADO.NETADO.NET を使用して ODBC データ ソースにアクセスするには、.NET Framework.NET Framework Data Provider for ODBC を使用してください。To access an ODBC data source using ADO.NETADO.NET, use the .NET Framework.NET Framework Data Provider for ODBC.

.NET Framework.NET Framework Data Provider for OLE DB クラスは、名前空間 System.Data.OleDb 内に配置されます。 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.NET Framework Data Provider for ODBC (Odbc) は、ネイティブ ODBC ドライバー マネージャー (DM) を使用することで、データへのアクセスを可能にします。The .NET Framework.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.NETADO.NETとのテストが完了している ODBC ドライバーを次の表に示します。The following table shows the ODBC drivers tested with ADO.NETADO.NET.

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

.NET Framework.NET Framework Data Provider for ODBC クラスは、名前空間 System.Data.Odbc 内に配置されます。 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.NET Framework Data Provider for ODBC を使用する場合、MDAC 2.6 以降が必要となります。MDAC 2.8 SP1 をお勧めします。The .NET Framework.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

.NET Framework.NET Framework Data Provider for Oracle (OracleClient) は、Oracle クライアント接続ソフトウェアを介して、Oracle データ ソースのデータへのアクセスを可能にします。The .NET Framework.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.NET Framework Data Provider for Oracle を使用する場合、Oracle データ ソースに接続する前に、Oracle クライアント ソフトウェア (バージョン 8.1.7 以降) をシステムにインストールする必要があります。The .NET Framework.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.NET Framework Data Provider for Oracle クラスは、名前空間 System.Data.OracleClient 内に配置され、 System.Data.OracleClient.dll アセンブリに格納されます。 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.NET Framework データ プロバイダーを選択すると、アプリケーションのパフォーマンス、能力、および整合性が向上します。Depending on the design and data source for your application, your choice of .NET Framework.NET Framework data provider can improve the performance, capability, and integrity of your application. .NET Framework.NET Framework データ プロバイダーが持つ利点と制限事項を次の表で説明します。The following table discusses the advantages and limitations of each .NET Framework.NET Framework data provider.

|プロバイダーProvider|メモNotes|
|--------------|-----------|
|.NET Framework.NET Framework Data Provider for SQL Server 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.NET Framework Data Provider for OLE DB します。Recommended over use of the OLE DB provider for SQL Server (SQLOLEDB) with the .NET Framework.NET Framework Data Provider for OLE DB.|
|.NET Framework.NET Framework Data Provider for OLE DB Data Provider for OLE DB|SQL サーバーの場合、.NET Framework.NET Frameworkこのプロバイダーではなく Data Provider for SQL Server をお勧めします。For SQL Server, the .NET Framework.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.NET Framework ' Data Provider for ODBC Data Provider for ODBC</span></span>|<span data-ttu-id="ffa67-231">中間層アプリケーションおよび単層アプリケーションで ODBC データ ソースを使用する場合に推奨します。</span><span class="sxs-lookup"><span data-stu-id="ffa67-231">Recommended for middle and single-tier applications that use ODBC data sources.</span></span>| |[!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)]<span data-ttu-id="ffa67-232"> ' Data Provider for Oracle</span><span class="sxs-lookup"><span data-stu-id="ffa67-232">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. 詳細については、次を参照してください。 EntityClient と Entity SQLします。For more information, see EntityClient and Entity SQL.

関連項目See Also

ADO.NET の概要ADO.NET Overview
ADO.NET でのデータの取得および変更Retrieving and Modifying Data in ADO.NET
ADO.NET のマネージド プロバイダーと DataSet デベロッパー センターADO.NET Managed Providers and DataSet Developer Center