Sie sind hier: Startseite | Wissen
Werbung

Was ist DbProviderFactory?

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 DbDataAdapter-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=ESSEN";
   const string SQL = "Select * from Employees";
   DbProviderFactory provider = DbProviderFactories.GetFactory("System.Data.SqlClient");
   DbConnection connection = provider.CreateConnection();
   connection.ConnectionString = CONNSTRING;
   DbDataAdapter adapter = provider.CreateDataAdapter();
   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

Beratung & Support:

Schulungen zu diesem Thema:

 Anfrage für eine individuelle Schulung zum Thema Dbproviderfactory  Gesamter Schulungsthemenkatalog