DbProviderFactory
Eintrag zuletzt aktualisiert am: 07.03.2004
Stark vereinfacht wird in
ADO.NET 2.0 auch die Möglichkeit, unabhängig von einer konkreten
Datenbank zu programmieren. Durch die Klassen DbProviderFactory, DbConnection, DbCommand sowie die bereits vorher vorhandene Db
DataAdapter-Klasse kann man nun die Informationen zum Data-Provider in einem zur Laufzeit austauschbaren Zeichenkette halten (Listing 1). Die installierten Provider können über
System.Data.Common.DbProviderFactories.GetFactoryClasses() aufgelistet werden (Listing 2).
Hinweis: Die Klassen DbConnection und DbCommand sind die neuen Basisklassen für alle providerspezifischen Connection- und Command-Klassen
const string CONNSTRING = "Integrated Security=
SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=E
SSEN";
const string SQL = "Select * from Employees";
DbProviderFactory provider = DbProviderFactories.GetFactory("
System.Data.SqlClient");
DbConnection connection = provider.CreateConnection();
connection.ConnectionString = CONNSTRING;
Db
DataAdapter adapter = provider.Create
DataAdapter();
adapter.Connection = connection;
DbCommand command = provider.CreateCommand();
command.CommandText = SQL;
DataSet ds = new
DataSet();
adapter.SelectCommand = command;
adapter.Connection = connection;
adapter.Fill(ds);
Console.WriteLine(ds.Tables[0].Rows.Count);
Listing 1:
Datenbankunabhängige Programmierung mit der DbProviderFactory
DataTable providers =
System.Data.Common.DbProviderFactories.GetFactoryClasses();
foreach (DataRow provider in providers.Rows)
{
foreach (DataColumn c in providers.Columns)
Console.WriteLine(c.ColumnName + ":" + provider[c]);
Console.WriteLine("---");
}
Listing 2: Auflisten der installierten
ADO.NET-
Datenbanktreiber