次の方法で共有


.NET Framework データ プロバイダの共通コードの作成

ADO.NET によって提供される共通インターフェイスを使用すると、使用する .NET Framework データ プロバイダとは関係なく動作するコードを含む、単一のコード セットを作成できます。

複数の .NET Framework データ プロバイダにまたがって使用されるコードを作成する場合、プロバイダ固有の構文の使用には特に注意が必要です。たとえば、SQL の構文はアクセス先のデータ ソースによって異なります。別の .NET Framework データ プロバイダに切り替える場合でも、SQL コマンドを文字列定数として分離しておけば、コードの保守が簡単になります。

同様に、コード内でのパラメータの作成順序を維持することも重要です。.NET Framework Data Provider for SQL Server の場合、パラメータの識別には名前を使用するため、パラメータの順序は問題になりません。しかし、.NET Framework Data Provider for OLE DB の場合、パラメータの値は、パラメータをパラメータ コレクションに追加した順序で代入します。したがって、コード内のパラメータの順序を常に維持することをお勧めします。

.NET Framework Data Provider for SQL Server、.NET Framework Data Provider for OLE DB、.NET Framework Data Provider for ODBC のどれとでも動作するコード例を次に示します。

' You can use either:
'  Dim myConn As IDbConnection = New SqlConnection
' or:
'  Dim myConn As IDbConnection = New OleDbConnection
' or:
'  Dim myConn As IDbConnection = New OdbcConnection
' or:
'  Dim myConn As IDbConnection = New OracleConnection

Dim myCommand As IDbCommand = myConn.CreateCommand()
myCommand.CommandText = "SELECT * FROM Customers"
Dim myReader As IDataReader = myCommand.ExecuteReader()

Do While myReader.Read()
  Console.WriteLine("{0}" & vbTab & "{1}", myReader.GetString(0), myReader.GetString(1))
Loop
[C#]
// You can use either:
//  IDbConnection myConn = new SqlConnection();
// or:
//  IDbConnection myConn = new OleDbConnection();
// or:
//  IDbConnection myConn = new OdbcConnection();
// or:
//  IDbConnection myConn = new OracleConnection();

IDbCommand myCommand = myConn.CreateCommand();
myCommand.CommandText = "SELECT * FROM Customers";
IDataReader myReader = myCommand.ExecuteReader();

while (myReader.Read())
  Console.WriteLine("{0}\t{1}", myReader.GetString(0), myReader.GetString(1));

参照

ADO.NET の概要 | ADO.NET のアーキテクチャ | .NET Framework データ プロバイダによるデータのアクセス