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 DbProviderFa
ctory, 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.DbProviderFa
ctories.GetFa
ctoryClasses() 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";
DbProviderFa
ctory provider = DbProviderFa
ctories.GetFa
ctory("
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 DbProviderFa
ctory
DataTable providers =
System.Data.Common.DbProviderFa
ctories.GetFa
ctoryClasses();
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
Sind die Inhalte hilfreich?