Leistungen
Leistungen
Überblick
Leistungsangebot
Kernkompetenzen
Schulungsthemen
In-House-Schulungen
Offene .NET-Seminare
Offene WPS-Seminare
Beratung
Coaching
Support
Softwareentwicklung
Entwickler-Vermittlung
.NET/Visual Studio
TFS/ALM/Scrum
Webprogrammierung
PowerShell
Konditionen
Anfrage/Kontakt
Beratung/Coaching
Beratung/Coaching
Beratungsthemen
Coaching
Unsere Berater
Referenzkunden
Konditionen
Angebotsanfrage
In-House-Schulungen
In-House-Schulungen
Überblick
Themen/Fachgebiete
Schulungskonfigurator
Konzepte
.NET/Visual Studio
C#
VB.NET
ASP.NET
Moderne Webanwendungen
TFS/ALM/Scrum
PowerShell
Konferenzvortraege
Referenzkunden
Unsere Trainer
Konditionen
Angebotsanfrage
Offene Schulungen
Offene Schulungen
Überblick .NET-Seminare
.NET/C#-Basisseminar
WPF (Desktop)
ASP.NET/AJAX (Web)
WCF/WF (SOA)
ADO.NET/EF (Data)
Windows PowerShell
.NET, C#, VB, Visual Studio
.NET, C#, VB, Visual Studio
Startseite
Beratung/Training
Offene .NET-Seminare
Einführung
Lexikon
Artikel
Bücher
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
World Wide Wings Demo
Codebeispiele
Scripting
ASP.NET
.NET 2.0
.NET 3.0/3.5
.NET 4.0/4.5
Community
Forum
Kommerzielle Leistungen
ASP.NET
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
PowerShell
PowerShell
Überblick
Beratung
In-House-Schulungen
Öffentliche Schulungen
Codebeispiele
Commandlet Extensions
Offene PowerShell-Seminare
Inhouse-Seminare
Windows
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Windows Scripting
Windows Scripting
Startseite
Lexikon
FAQ
Buecher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
Scripting-Tools
WSH-Editoren
Codebeispiele
ASP.NET
.NET-Scripting
Forum
Links
Kommerzielle Leistungen
Service
Service
Website-FAQ
Anmeldung/Login
Leser-Registrierung
Gast-Registrierung
Nachrichten/RSS
Newsletter
Foren
Weblog
Lexikon
Downloads
Support
Kontakt
Literaturtipps
Publikationen
Publikationen
Redaktionsbüro
Bücher
Fachartikel
Leser-Portal
Autoren gesucht!
Rezensionen
Über uns
Über uns
Holger Schwichtenberg
Team
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Site Map
Weitere Websites
Tag Cloud
Impressum
Rechtliches

Ausgabe einer Tabelle mit Hilfe eines DataSet-Objekts
Codebeispiel für Visual Basic .NET (VB.NET) und CSharp (C#)

Liste aller Codebeispiele

Ausgabe einer Tabelle mit Hilfe eines DataSet-Objekts

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

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Um auf eine Datenbanktabelle mit einem DataSet-Objekt lesend zuzugreifen, sind folgende Schritte notwendig:

- Aufbau einer Datenbankverbindung mit einem OleDbConnection-Objekt
- Instanziierung eines DataSet-Objekts
- Instanziierung eines OleDbDataAdapter-Objekts unter Verwendung des OleDbConnection-Objekts und eines SQL-Befehls
- Ausführen der Abfrage und Füllen des DataSet-Objekts mit der Ergebnismenge durch die Methode Fill()
- Auslesen der Daten
- Schließen der Verbindung (Close())

Alternativ zur expliziten Instanziierung eines OleDbConnection-Objekts kann eine Verbindungszeichenfolge auch bei der Instanziierung des OleDbDataAdapter-Objekts übergeben werden. Dann besteht die Verbindung nur für einen Befehl. Der Data Adapter baut dann die Verbindung erst mit Ausführung der Fill()-Methode auf und direkt danach wieder ab.

Beispiel


Das folgende einfache Beispiel zeigt das Einlesen einer einzelnen Tabelle in einem DataSet. Datenquelle ist die auf der Buch-CD enthaltene Access-Datenbank EDVShop.mdb. Aus allen Datensätzen aus der Quelltabelle "Produkte", die zur Produktkategorie 23 gehören ("SELECT * FROM Produkte WHERE kategorie=23"), wird im DataSet eine DataTable mit dem Namen "EDV-Antik" erzeugt.
Diese Tabelle wird im Folgenden in drei Formen ausgegeben: Zunächst durchläuft das Programm alle Datensätze über die DataRows-Collection und gibt nur die Spalten "Name" und "Preis" aus. Anschließend wird die komplette Tabelle (einschließlich der Spaltenüberschriften) als CSV-Liste durch die Hilfsroutine table_to_csv() ausgegeben. Als Drittes erfolgt die Ausgabe als XML-Dokument durch die Methode GetXml() des DataSet-Objekts.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Ausgabe einer Tabelle mit Hilfe eines DataSet-Objekts
' (C) Holger@Schwichtenberg.de
' ============================
   Sub ADONET_DS1()
   Dim DS As System.Data.DataSet
   Dim Com As System.Data.OleDb.OleDbCommand
   Dim SQL As String
   Dim DR As DataRow
   Dim DT As DataTable

   outtitle("Produktliste mit DataSet ausgeben")

   ' --- DataSet erzeugen
   DS = New System.Data.DataSet()

   ' --- Einlesen vorbereiten
   SQL = "SELECT * FROM Produkte WHERE kategorie=23"
   Dim DA As System.Data.OleDb.OleDbDataAdapter
   DA = New System.Data.OleDb.OleDbDataAdapter(SQL, CONNSTRING)

   ' --- Tabelle lesen
   DA.Fill(DS, "EDV-Antik")

   ' --- Ausgabe #1
   out("### Preisliste")

   ' Zugriff auf Tabelle
   DT = DS.Tables("EDV-Antik")

   ' Anzahl der Datensätze ausgeben
   out("Anzahl Produkte: " & DT.Rows.Count)

   ' Schleife über alle Datensätze
   For Each DR In DT.Rows
   out(DR("name").ToString & " kostet " & DR("Preis").ToString)
   ' Zwei Alternativen:
   'out(DR!name.ToString & " kostet " & DR!Preis.ToString)
   'out(DR.Item("name").ToString & " kostet " & DR.Item("Preis").ToString)
   Next

   ' --- Ausgabe #2
   out("### Inhalt der Tabelle als CSV:")
   out(table_to_csv(DS.Tables("EDV-Antik")))

   ' --- Ausgabe #3
   out("### Inhalt der Tabelle als XML:")
   out(DS.GetXml)

   End Sub

Programmcodebeispiele CSharp (C#)

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

using FCL_Buch;

namespace FCL_Buch._System_Data {

  public class Samples_ADONET_DataSet {

   public void ADONET_DataSet1() {

   // Ausgabe einer Tabelle mit Hilfe eines DataSet-Objekts
   FclOutput.PrintOutSubHeader( "Produktliste mit DataSet ausgeben" );

   // DataSet erzeugen
   DataSet ds = new DataSet();

   // Einlesen vorbereiten
   string sql = "SELECT * FROM Produkte WHERE kategorie=23";
   OleDbDataAdapter da = new OleDbDataAdapter( sql, ADONET_Globals.ConnectionString );

   // Tabelle lesen
   da.Fill( ds, "EDV-Antik" );

   // Ausgabe #1
   FclOutput.PrintOutSubHeader( "Preisliste" );

   // Zugriff auf Tabelle
   DataTable dt = ds.Tables["EDV-Antik"];

   // Anzahl der Datensätze ausgeben
   FclOutput.PrintOut( "Anzahl Produkte: " + dt.Rows.Count.ToString() );

   // Schleife über alle Datensätze
   foreach ( DataRow dr in dt.Rows ) {
   FclOutput.PrintOut(dr["name"].ToString() + " kostet " + dr["Preis"].ToString() );
   // Alternative:
   // FclOutput.PrintOut(dr["name"].ToString() + " kostet " + dr["Preis"].ToString() );
   }

   // Ausgabe #2
   FclOutput.PrintOutSubHeader( "Inhalt der Tabelle als CSV:" );
   FclOutput.PrintOut( ADONET_HelperMethods.TableToCsv( ds.Tables["EDV-Antik"] ) );

   // Ausgabe #3
   FclOutput.PrintOutSubHeader( "Inhalt der Tabelle als XML:" );
   FclOutput.PrintOut( ds.GetXml() );

   }
}
}

Querverweise

Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System.Data'
Übersicht über den FCL-Namensraum 'System.Data'
Portal dotnetframework.de