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.

  1. Connection
  2. Command
  3. DataReader
  4. DataAdapter
  5. DataSet (InMemory Database)
  6. DataTable

Die Connection-Klasse stellt 4 DataProvider zur Verfügung:
      SqlConnection
      OleDbConnection
      OdbcConnection
      OracleConnection

Code-Beispiele

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.

Beispiel

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