25 ADO.NET – die Verbindung zu einer Datenbank herstellen
Vor der Einführung von ADO.NET im Jahr 2002 hat Microsoft verschiedene Datenzugriffstechnologien für den Zugriff und das Speichern von Daten eingesetzt. Der direkte Vorgänger von ADO.NET war Microsoft ActiveX Data Objects (ADO), eine verbindungsorientierte Datenzugriffstechnologie, der allerdings Schlüsselfunktionen fehlen, um auch sehr große, verteilte Anwendungen zu erstellen.
ADO.NET integriert sich mit seinen Klassen in mehreren Namespaces des .NET-Frameworks. Von der Idee her soll ADO.NET den Entwicklern dabei helfen, effiziente mehrschichtige Datenbankanwendungen über Intranets und das Internet hinweg zu erstellen. Daraus resultiert eine zweischichtige Klassenarchitektur: Es gibt Klassen, deren Objekte mit der Datenbank verbunden sind, und Klassen, deren Objekte als unverbundene Objekte bezeichnet werden. Zu den verbundenen Objekten zählen unter anderem die Klassen Connection, Command und DataAdapter, zu den unverbundenen die Klasse DataSet und DataTable. Auf alle werden wir im Verlauf dieses Kapitels noch eingehen.
Sie können nicht erwarten, dass in diesem und den folgenden Kapiteln sämtliche Aspekte von ADO.NET erläutert werden. Dafür ist das Objektmodell mit allen seinen Möglichkeiten einfach zu komplex und würde für sich alleine ein ganzes Buch füllen. Ich werde aber versuchen, Ihnen die meiner Ansicht nach wichtigsten Klassen vorzustellen, Ihnen zu zeigen, wie Sie Daten abrufen und eine Datenbank aktualisieren können.
25.1 Die ADO.NET-Provider 

Bevor auf die Dateninformationen in einer Datenbank zugegriffen werden kann, muss eine Verbindung zu der Datenquelle hergestellt werden. ADO.NET stellt dazu passende Klassen zur Verfügung, mit denen eine Verbindung aufgebaut und gesteuert werden kann.
Die erste Frage, die es zu klären gilt, ist die nach dem Typ des Datenspeichers. Damit entscheidet sich auch, welcher Datenprovider zum Einsatz kommt. Das .NET Framework stellt vier zur Verfügung:
- SqlClient-Provider
- OleDb-Provider
- Odbc-Provider
- Oracle-Provider
Ein Datenprovider ist eine Ansammlung von Klassen, die den Zugriff auf einen bestimmten Datenspeichertyp ermöglichen. Jeder .NET-Datenprovider implementiert dabei die gleichen Basisklassen, beispielsweise Connection, Command und DataAdapter. Der tatsächliche Name hängt vom gewählten Provider ab. So bietet der SqlClient-Provider beispielsweise die Klasse SqlConnection an, der OleDb-Datenprovider die Klasse OleDbConnection. Unabhängig davon, für welchen Datenprovider Sie sich entscheiden, die Schnittstellen und damit die Funktionalitäten bleiben gleich. Nahezu unabhängig von der Providerwahl ist auch der Programmcode. Sollten Sie vielleicht gezwungenermaßen zu einem späteren Zeitpunkt den Provider wechseln, brauchen Sie möglicherweise den Programmcode überhaupt nicht zu überarbeiten.
Häufig sind Sie nicht auf einen einzigen Datenprovider festgelegt, sondern können für den Zugriff auf eine Datenquelle zwischen mehreren auswählen. Ist die Datenquelle ein Microsoft SQL Server in der Version 7.0 oder höher, empfiehlt sich der SqlClient-Datenprovider, weil dieser für die genannten Versionen des SQL Servers optimiert ist.
Jeder .NET-Datenprovider hat einen eigenen Namespace, der ein Unternamespace von System.Data ist und mit using bekannt gegeben werden sollte. In den Beispielen dieses Kapitels werden wir ausschließlich den SqlClient-Datenprovider benutzen.
Die Beispieldatenbank »Northwind«
Für unsere Beispiele in den folgenden Kapiteln benötigen wir eine Datenbank. Die altbekannte Northwind soll uns hierzu dienen. Laden Sie sich deshalb aus dem Internet die Datei Northwind.mdf herunter und installieren Sie sie unter dem SQL Server 2005.




Jetzt bestellen





