Einführung
ADO.NET ist die Sammelbezeichnung für alle datenbankbezogenen Module der .NET‑Plattform.
Damit arbeiten wir mit Datenbanken und führen grundlegende Vorgänge wie Einfügen, Löschen, Ändern und Abfragen aus. Außerdem lassen sich SQL‑Anweisungen ausführen, SQL‑Funktionen aufrufen und gespeicherte Prozeduren abarbeiten.
Fast alle großen Geschäftssysteme sind auf Datenbanken angewiesen. Wenn Daten dauerhaft gespeichert und schnell abgefragt werden sollen, kommt eine Datenbank zum Einsatz.
ADO.NET stellt im Kern eine Reihe von Objekten bereit, die alle benötigten Methoden für Datenbankoperationen bereits gekapselt haben:
- Connection: Stellt die Verbindung zur Datenbank her
- Command: Führt SQL‑Befehle aus
- DataSet: Ein im Arbeitsspeicher befindlicher Datensatz, eine Abstraktion der Datenbank. Die Arbeit mit einem DataSet verhält sich wie mit einer Offline‑Datenbank. Es beinhaltet DataTable (Datentabelle) sowie DataRow (einzelner Datensatz einer Tabelle).
- DataReader: Vorwärtsgerichteter, schreibgeschützter Datenleser
- DataAdapter: Datenadapter
Nur mit fundierten ADO.NET‑Kenntnissen lassen sich voll funktionsfähige Geschäftssysteme bauen. Auch Webseiten und weitere Anwendungen greifen häufig auf Datenbanken zurück, daher empfiehlt sich eine gründliche Einarbeitung.
ORM‑Frameworks wie EF, iBatis, NHibernate und Linq to Entities basieren unter der Haube vollständig auf ADO.NET. Auf dieser Basis können Sie auch eigene ORM‑Frameworks entwickeln.
Datenbankverbindung
Connection baut die Verbindung zwischen Programm und Datenbank auf und bildet die Grundlage für sämtliche Datenbankzugriffe.
.NET liefert die Klasse SqlConnection für Datenbankverbindungen. Sie liegt im Namespace System.Data.SqlClient und gehört zur Assembly System.Data.dll.
Die meisten Typen für die Kommunikation mit der Datenbank sind in dieser DLL gekapselt.
Bevor Sie eine Verbindung herstellen, bereiten Sie zuerst eine Datenbank‑Verbindungszeichenfolge vor. Diese übergeben Sie bei der Instanziierung des SqlConnection‑Objekts.
SqlConnection conn = new SqlConnection(connectionString);Code-Sprache: JavaScript (javascript)
Eine Verbindungszeichenfolge ist eine einfache Zeichenfolge, die als string‑Typ abgelegt wird.
Beispiele für Verbindungszeichenfolgen bei zwei Anmeldeverfahren
- Anmeldung mit SA‑Benutzer und Passwort (SQL Server‑Authentifizierung)
"Data Source=.;Initial Catalog=Datenbankname;User ID=sa;pwd=Passwort;"Code-Sprache: JSON / JSON mit Kommentaren (json)
- Anmeldung per Windows‑Authentifizierung
Data Source=.;Initial Catalog=Datenbankname;Integrated Security=TrueCode-Sprache: PHP (php)
Die Verbindungszeichenfolge besteht aus mehreren Konfigurationseinträgen, getrennt durch englische Semikolons, im Format Schlüssel=Wert.
Erläuterung der Parameter:
Data Source: Adresse des Datenbankservers. Für lokale Datenbanken nutzen Sie.,localhostoder127.0.0.1; bei entfernten Servern geben Sie IP‑Adresse oder Domain‑Namen an.Initial Catalog: Name der Ziel‑DatenbankUser ID: Benutzername für den Datenbankzugriffpwd: Passwort für den Datenbankzugriff
Hinweis:
User IDundpwdsind keine Pflichtfelder. Bei Nutzung der Windows‑Anmeldung aktivieren Sie mitIntegrated Security=Truedie integrierte Sicherheitsüberprüfung, Benutzername und Passwort werden dann nicht benötigt.
Herstellen einer Datenbankverbindung in C#
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=.;Initial Catalog=db;User ID=sa;pwd=123321;";
// Verbindungsobjekt innerhalb eines using‑Blocks erstellen. Ressourcen werden automatisch freigegeben, manuelles Close() entfällt
using (SqlConnection conn = new SqlConnection(connectionString))
{
// Datenbankverbindung öffnen
conn.Open();
// Hier den Code für Datenbankoperationen einfügen
}
}Code-Sprache: JavaScript (javascript)
Hinweise
conn.Open(): Öffnet die Datenbankverbindung. Erst durch diesen Aufbau wird die eigentliche Netzwerkverbindung aufgebaut.- Vorteil der
using‑Syntax: Beim Verlassen des using‑Blocks werden Ressourcen automatisch freigegeben und die Datenbankverbindung geschlossen, um Verbindungslecks zu vermeiden. - Ohne using‑Anweisung müssen Sie nach Abschluss der Arbeiten manuell
conn.Close()aufrufen, um die Verbindung zu schließen.
Weitere Verwendungsarten
//conn.Open(); // Verbindung öffnen
//conn.Close(); // Verbindung manuell schließen
//conn.ConnectionString = connectionString; // Verbindungszeichenfolge dynamisch zuweisen
//conn.ConnectionString = ""; // Verbindungszeichenfolge leerenCode-Sprache: JSON / JSON mit Kommentaren (json)
Einführung und Verbindung