Freigeben über


Schreiben von gemeinsamem Code für .NET Framework-Datenprovider

Mit den allgemeinen Schnittstellen von ADO.NET können Sie einen einzelnen Codesatz schreiben, der für alle .NET Framework-Datenprovider funktioniert.

Wenn Sie Code schreiben, der für verschiedene .NET Framework-Datenprovider verwendet wird, achten Sie besonders auf die Syntax und darauf, ob sie nur für einen bestimmten Datenprovider zulässig ist. Beispielsweise hängt die SQL-Syntax von der Datenquelle ab, auf die Sie zugreifen, und kann entsprechend unterschiedlich sein. Wenn Sie zu einem anderen .NET Framework-Datenprovider wechseln, ist die Verwaltung des Codes einfacher, wenn Sie die SQL-Befehle als Zeichenfolgenkonstanten isolieren.

Ebenso ist es wichtig, die Reihenfolge beizubehalten, in der die Parameter im Code erstellt werden. Die Parameterreihenfolge ist für den .NET Framework-Datenprovider für SQL Server irrelevant, weil die Parameter anhand des Namens identifiziert werden. Der .NET Framework-Datenprovider für OLE DB ordnet die Parameterwerte hingegen in der Reihenfolge zu, in der die Parameter der Parameterauflistung hinzugefügt werden. Aus diesem Grund sollten Sie die Reihenfolge der Parameter im Code stets beibehalten.

Das folgende Codebeispiel funktioniert sowohl mit dem .NET Framework-Datenprovider für SQL Server als auch mit dem .NET Framework-Datenprovider für OLE DB oder dem .NET Framework-Datenprovider für 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));

Siehe auch

Übersicht über ADO.NET | ADO.NET-Architektur | Datenzugriff mit .NET Framework-Datenprovidern