Sie sind hier: Startseite
 Liste aller Codebeispiele

Ausgabe einer Tabelle mit Hilfe eines DataReaders

Ein Beispiel zum Einsatz der Klasse System.Data.OleDb.OleDbDataReader aus der .NET-Klassenbibliothek.

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Ein DataReader ist eine besonders effiziente Klasse zum Lesen von Daten aus (OLEDB-)Datenquellen. Zur Steigerung der Performance unterliegt ein DataReader folgenden Beschränkungen:
  • Daten können nur gelesen werden.
  • Daten können nur vorwärts (d.h. nur einmal) gelesen werden.

Damit entspricht ein DataReader einem RecordSet vom Typ read-only/forward-only aus dem klassischen ADO.

Vorgehensweise
Um Daten mit einem DataReader zu lesen, sind folgende Schritte notwendig:
  • Aufbau einer Verbindung zu der Datenbank mit einem OleDbConnection-Objekt. Bei der Instanziierung dieses Objekts kann die Verbindungszeichenfolge übergeben werden.
  • Instanziierung der Klasse OleDbCommand und Bindung dieses Objekts an das OleDbConnection-Objekt über die Eigenschaft Connection
  • Festlegung eines SQL-Befehls im OleDbCommand-Objekt in der Eigenschaft CommandText

Beispiel
Die folgende Routine listet aus der Tabelle "Produkte" alle Produktdatensätze auf, die zur Kategorie 23 gehören.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Ausgabe einer Tabelle mit Hilfe eines DataReaders
' (C) Holger@Schwichtenberg.de
' ============================
Sub ADONET_DR1()
Dim Conn As OleDbConnection
Dim Com As OleDbCommand
Dim DR As OleDbDataReader

' --- Verbindung aufbauen
Conn = New OleDbConnection(CONNSTRING)
Conn.Open()

' --- Befehl definieren
Com = New OleDbCommand()
Com.Connection = Conn
Com.CommandText = _
"SELECT * FROM Produkte WHERE Kategorie = 23"

' --- Befehl ausführen
DR = Com.ExecuteReader()

' --- Daten lesen
While DR.Read() = True
out(DR.Item("Name").ToString & _
" (Produkt #" & DR.Item("ID").ToString & ") " & _
" kostet " & _
DR.Item("Preis").ToString & " €")
End While

' --- Schließen
DR.Close()
Conn.Close()
End Sub

Programmcodebeispiele CSharp (C#)

using System;
using System.Data;
using System.Data.OleDb;

namespace FCLBuch._SystemData {

public class SamplesADONETDataReader {
public void ADONET_DR1() {

// Ausgabe einer Tabelle mit Hilfe eines Datareaders
FclOutput.PrintOut( "Produktliste mit DataReader ausgeben" );

// Verbindung aufbauen
OleDbConnection conn = new OleDbConnection( ADONET_Globals.ConnectionString );
conn.Open();

// Befehl definieren
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM Produkte WHERE Kategorie = 23";

// Befehl ausführen
OleDbDataReader DR = cmd.ExecuteReader();

// Daten lesen
while ( DR.Read() ) {
FclOutput.PrintOut( DR["Name"].ToString() +
" (Produkt #" + DR["ID"].ToString() + ") " +
" kostet " +
DR["Preis"].ToString() + " €" );
}

// schließen
DR.Close();
conn.Close();
}

}
}

Querverweise

 Definition '.NET Framework Class Library'  Verfügbarkeit der Klasse 'System.Data.OleDb.OleDbDataReader'  Übersicht über den FCL-Namensraum 'System.Data.OleDb'  .NET & Visual Studio Community Portal