ADO.NET Übersicht
[ → ]
Über ActiveX Data Objects(ADO) stehen Klassen zum Zugriff auf relationale Datenbanken zur Verfügung.
Hier ein kurzer Überblick um das Zusammenspiel der Klassen und die Einsatzmöglichkeiten zu erkennen.
Die Connection-Klasse stellt 4 DataProvider zur Verfügung:
SqlConnection
OleDbConnection
OdbcConnection
OracleConnection
Es bestehen dann z.B. für den Zugriff auf Oracle-DBs eigene Klassen im Namesraum System.Data.OracleClient-NameSpace.
Die Steuerung des Zugriffs erfolgt aber bei allen DataProvidern in der selben Art und Weise.
Die Command-Klasse unterstützt verschiedene Abfrage-Aktionen mit der Datenbank:
ExecuteReader(Ergebnisliste von Datensätzen),
ExcecuteNoneQuery(Datenbankänderungen),
ExecuteScalar(Einzelner Wert z.B. Anzahl Datensätze)
Der DataAdapter unterstützt verschiedene Update-Aktionen:
SelectCommand
UpdateCommand
InsertCommand
DeleteCommand
Wobei für die DataAdapter-Klasse die beiden Hauptmethoden Fill und Update(Update-Aktionen) existieren.
Zum Verständnis,
der DataSet stellt als InMemory Datenbank eine Spezialität dar, da hier Daten losgelöst
von der Datenbankverbindung im Speicher geändert werden können.
Die DataSets können von einem GridView-Element innerhalb einer WebForm konsumiert
werden(ASP.NET-Anwendung).
Die Klassen
DataSet (Repräsentation der Daten) bzw.
DataTable
arbeiten verbindungslos.
string strCon = @"Data Source=SONY\MYSQLSERVER;" +
"Initial Catalog=Northwind;Integrated Security=SSPI";
string strSql="select * from customers";
SqlConnection con=new SqlConnection(strCon);
con.Open();
SqlDataAdapter dadapter=new SqlDataAdapter();
dadapter.SelectCommand=new SqlCommand(strSql,con);
DataSet dset=new DataSet();
dadapter.Fill(dset);
con.Close();
this.dataGrid1.DataSource=dset;
Das Zusammenspiel der einzelnen Klassen ist hier ersichtlich. Ein Code-Beispiel das eine Änderung in einer Datenbank vornimmt: d.h. ExecuteNoneQuery