.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 データ プロバイダによるデータのアクセス