Code-Beispiel
   
    
   
   Ein Beispiel zum Einsatz der Klasse System.Data.DataSet aus der .NET-Klassenbibliothek.
   
   Autor: Dr. Holger Schwichtenberg
   Beschreibung
   Dieses Negativ-Beispiel geht nicht effizient mit den Systemressourcen um, weil der Hilfsroutine AddToDS() jedes Mal die gleiche Verbindungszeichenfolge übergeben wird. Auch wenn OLEDB Connection Pooling verwendet, könnte die Performance gesteigert werden, indem zu Beginn eine Datenbankverbindung erzeugt wird, die bei jedem Vorgang wieder verwendet wird. Dies wird im nächsten Beispiel gezeigt.
   
   
    Programmcodebeispiele Visual Basic .NET (VB.NET)
   
   
    ' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Ausgabe mehrerer Tabellen mit Hilfe eines DataSet-Objekts
' (C) [email protected]
' ============================
    Sub ADONET_DS2()
        Dim DS As System.Data.DataSet
        Dim Com As System.Data.OleDb.OleDbCommand
        Dim SQL As String
        ' --- DataSet erzeugen
        DS = New System.Data.DataSet()
        ' --- 1. Tabelle einlesen
        SQL = "SELECT * FROM Produkte where kategorie=23"
        AddToDS(DS, "EDV-Antik", CONNSTRING, SQL)
        ' --- 2. Tabelle einlesen
        SQL = "SELECT * FROM Bestellungen"
        AddToDS(DS, "Bestellungen", CONNSTRING, SQL)
        ' --- 3. Tabelle einlesen
        SQL = "SELECT * FROM Kunden"
        AddToDS(DS, "Kunden", CONNSTRING, SQL)
        ' --- Ausgaben der Tabellen
        out("--- Inhalt des DataSet als CSV:")
        out(tabletocsv(DS.Tables("EDV-Antik")))
        out(tabletocsv(DS.Tables("Bestellungen")))
        out(tabletocsv(DS.Tables("Kunden")))
        out("--- Inhalt des DataSet als XML:")
        out(DS.GetXml)
    End Sub
   
         
	
	Programmcodebeispiele CSharp (C#)
	
		using System;
using System.Data;
using System.Data.OleDb;
using FCL_Buch;
namespace FCLBuch._SystemData {
  public class SamplesADONETDataSet {
public void ADONET_DataSet2() {
      FclOutput.PrintOutSubHeader( "Beispiel für Multi-Table-DataSet" );
      // DataSet erzeugen
      DataSet ds = new DataSet();
      // 1. Tabelle einlesen
      string sql = "SELECT * FROM Produkte where kategorie=23";
      ADONETHelperMethods.AddToDataSet( ds, "EDV-Antik", ADONETGlobals.ConnectionString, sql );
      // 2. Tabelle einlesen
      sql = "SELECT * FROM Bestellungen";
      ADONETHelperMethods.AddToDataSet( ds, "Bestellungen", ADONETGlobals.ConnectionString, sql );
      // 3. Tabelle einlesen
      sql = "SELECT * FROM Kunden";
      ADONETHelperMethods.AddToDataSet( ds, "Kunden", ADONETGlobals.ConnectionString, sql );
      // Ausgaben der Tabellen als CSV
      FclOutput.PrintOutSubHeader( "Inhalt des DataSet als CSV:" );
      FclOutput.PrintOut(ADONET_HelperMethods.TableToCsv( ds.Tables["EDV-Antik"] ) );
      FclOutput.PrintOut(ADONET_HelperMethods.TableToCsv( ds.Tables["Bestellungen"] ) );
      FclOutput.PrintOut(ADONET_HelperMethods.TableToCsv( ds.Tables["Kunden"] ) );
      // Ausgabe des DataSet als XML
      FclOutput.PrintOutSubHeader( "Inhalt des DataSet als XML:" );
      FclOutput.PrintOut( ds.GetXml() );
    }
}
}
         
   
	
	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.DataSet'
     Übersicht über den FCL-Namensraum 'System.Data'
     .NET & Visual Studio Community Portal