Code-Beispiel

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.

Programmcodebeispiel in 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

Weiteres Programmcodebeispiel in 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();
}

}
}

Hinweise

Ausgaben werden in den Beispielen durch Hilfsroutinen wie out() und PrintOut() erzeugt. Diese sind hier nicht angegeben, da deren Implementierung von der jeweiligen Umgebung abhängt. Für Konsolenanwendungen können hier z.B. Console.WriteLine() einsetzen.


 

Querverweise

 Liste aller Codebeispiele  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

Buchtipp

Buchcover PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch (6. Auflage Juni 2024 (10. Auflage Gesamtreihe)) PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
Autor(en): Dr. Holger Schwichtenberg
Erschienen 2024
Umfang: 1426 Seiten
ISBN: 3446481958

Beratung & Support

Schulungen

  Anfrage für eine individuelle Schulung zum Thema VISUAL BASIC C#   Gesamter Schulungsthemenkatalog

Fachbücher

  Alle unsere aktuellen Fachbücher   E-Book-Abo für ab 99 Euro im Jahr