.NET-Seminar ASP.NET-Seminar C#-Seminar Visual Basic .NET-Seminar TFS-Seminar SQL Server-Seminar PowerShell-Seminar Windows Azure-Seminar SharePoint-Seminar Viele weitere Themen
.NET 4.5 Update .NET 4.0 Crashkurs ASP.NET 4.0 mit C# Windows Scripting PowerShell 2.0
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
Weitere Informationen finden Sie in diesen Beiträgen:Providerfabrik