Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort zur 5. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Weitere .NET-Datentypen
7 Weitere Möglichkeiten von C#
8 Auflistungsklassen (Collections)
9 Fehlerbehandlung und Debugging
10 LINQ to Objects
11 Multithreading und die Task Parallel Library (TPL)
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 Einige wichtige .NET-Klassen
15 Projektmanagement und Visual Studio 2010
16 XML
17 WPF – Die Grundlagen
18 WPF-Containerelemente
19 WPF-Steuerelemente
20 Konzepte der WPF
21 Datenbindung
22 2D-Grafik
23 ADO.NET – verbindungsorientierte Objekte
24 ADO.NET – Das Command-Objekt
25 ADO.NET – Der SqlDataAdapter
26 ADO.NET – Daten im lokalen Speicher
27 ADO.NET – Aktualisieren der Datenbank
28 Stark typisierte DataSets
29 LINQ to SQL
30 Weitergabe von Anwendungen
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual C# 2010 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2010

Visual C# 2010
geb., mit DVD
1295 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1552-7
Pfeil 28 Stark typisierte DataSets
Pfeil 28.1 Stark typisierte DataSets erzeugen
Pfeil 28.1.1 Typisierte DataSets mit dem Visual Studio Designer erstellen
Pfeil 28.1.2 Das Kommandozeilentool »XSD.exe«
Pfeil 28.2 Anatomie eines typisierten DataSet
Pfeil 28.2.1 Datenzeilen einer Tabelle ausgeben
Pfeil 28.2.2 Datenzeilen hinzufügen
Pfeil 28.2.3 Datenzeilen bearbeiten
Pfeil 28.2.4 Datenzeilen suchen
Pfeil 28.2.5 NULL-Werte im typisierten DataSet
Pfeil 28.2.6 Daten in einem hierarchischen DataSet
Pfeil 28.3 Typisierte DataSets manuell im Designer erzeugen
Pfeil 28.3.1 DataTable manuell erzeugen
Pfeil 28.3.2 Der DataTable Spalten hinzufügen
Pfeil 28.3.3 Beziehungen zwischen den Tabellen erstellen
Pfeil 28.3.4 Weitergehende Betrachtungen
Pfeil 28.4 Der TableAdapter
Pfeil 28.4.1 TableAdapter mit Visual Studio erzeugen
Pfeil 28.4.2 Die Methode »Fill« des TableAdapters
Pfeil 28.4.3 Die Methode »GetData«
Pfeil 28.4.4 Die Methode »Update«
Pfeil 28.4.5 Aktualisieren mit den »DBDirect«-Methoden
Pfeil 28.4.6 TableAdapter mit mehreren Abfragen
Pfeil 28.4.7 Änderungen an einem TableAdapter vornehmen
Pfeil 28.5 Fazit: Typisierte oder nicht typisierte DataSets?

28 Stark typisierte DataSets

In den beiden vorangegangenen Kapiteln haben Sie alles Wesentliche im Zusammenhang mit der Klasse DataSet erfahren. Grundsätzlich wird aber zwischen zwei verschiedenen DataSets unterschieden: dem untypisierten DataSet und dem typisierten DataSet. Das untypisierte DataSet war der Schwerpunkt aller bisherigen Ausführungen. In diesem Kapitel werde ich Ihnen die typisierten DataSets vorstellen und dabei zeigen, welche Stärken und Schwächen diese Gruppe aufweist. Dabei werden wir auch den Designer von Visual Studio verwenden.

Wenn Sie ein typisiertes DataSet erzeugen, werden auch automatisch TableAdapter angelegt. Hierbei handelt es sich um typisierte DataAdapter, über die Sie eine DataTable mit Daten aus der Datenbank füllen und die Aktualisierungen wieder zurückschreiben können.


Galileo Computing - Zum Seitenanfang

28.1 Stark typisierte DataSets erzeugen Zur nächsten ÜberschriftZur vorigen Überschrift

Lassen Sie uns zunächst einmal ganz allgemein formulieren, was ein typisiertes DataSet ist. Ein stark typisiertes DataSet ist eine Klassendefinition, die von der Klasse DataSet abgeleitet ist. Es enthält Eigenschaften und Methoden, die auf der Struktur der Datenbankabfrage basieren. Darüber hinaus sind in einem typisierten DataSet Klassen für die DataTable- und DataRow-Objekte definiert.

Es bieten sich zwei Wege an, um ein stark typisiertes DataSet zu erzeugen:

  • Sie benutzen den Designer von Visual Studio.
  • Sie verwenden das Befehlszeilendienstprogramm XSD.exe.

Der einfachere Weg ist natürlich der über den Designer, den ich Ihnen auch als ersten vorstellen möchte.


Galileo Computing - Zum Seitenanfang

28.1.1 Typisierte DataSets mit dem Visual Studio Designer erstellen Zur nächsten ÜberschriftZur vorigen Überschrift

An einem Beispiel möchte ich Ihnen zeigen, wie Sie auf einfache Weise ein typisiertes DataSet erzeugen. Das typisierte DataSet soll die beiden Tabellen Products und Categories beschreiben. Aus der Tabelle Products interessieren uns dabei die Spalten ProductID, CategoryID, ProductName und UnitPrice, aus Categories die Spalten CategoryID und CategoryName.

Nachdem Sie ein neues Projekt angelegt haben, fügen Sie über den Projektmappen-Explorer ein neues Element hinzu. Markieren Sie dazu den Knoten des Projekts im Projektmappen-Explorer, öffnen Sie dessen Kontextmenü, und wählen Sie Neues Element hinzufügen. Im sich öffnenden Dialogfenster wählen Sie die Vorlage DataSet aus und geben dem Element einen passenden Namen. Ich habe mich hier für NWDataSet.xsd entschieden (siehe Abbildung 28.1).

Abbildung 28.1 So fügen Sie dem Projekt ein typisiertes »DataSet« hinzu.

Im Designer wird nun ein leeres Fenster angezeigt, dem die gewünschten Tabellen hinzugefügt werden müssen. Dazu setzen wir den Server-Explorer ein, dem wir die benötigte Datenbankverbindung zuvor noch hinzufügen müssen. Sollten Sie das Fenster des Server-Explorers nicht sehen, können Sie es über das Menü Ansicht öffnen.

Ganz oben im Server-Explorer sehen Sie den Knoten Datenverbindungen. Markieren Sie diesen Knoten, und wählen Sie in dessen Kontextmenü den Eintrag Verbindung hinzufügen. Es wird daraufhin der gleichnamige Dialog angezeigt. Achten Sie darauf, dass im Feld Datenquelle »Microsoft SQL Server (SqlClient)« eingetragen ist. Wenn nicht, können Sie über die Schaltfläche Ändern die Datenquelle wechseln.

Geben Sie nun den Servernamen an. Sollte sich der Datenbankserver auf der lokalen Maschine befinden, reicht die Angabe eines Punktes (.). Gleichwertig können Sie auch »(local)« eintragen, einschließlich der runden Klammern. Vielleicht haben Sie auch die Northwind-Datenbank in einer benannten Instanz von SQL Server installiert, beispielsweise SQL Express. Geben Sie dann den Instanzbezeichner von SQL Server, getrennt durch ein \-Zeichen, hinter dem Rechnernamen an, z. B. so:


(local)\SQLExpress

Als Authentifizierungsinformationen wird per Vorgabe die Windows-Anmeldung vorselektiert. Wollen Sie die SQL Server-Anmeldung verwenden, müssen Sie auch Benutzername und Kennwort eintragen. Diese Option führt natürlich auch nur dann zum Erfolg, wenn der SQL Server die SQL Server-Authentifizierung unterstützt. Wählen Sie zum Schluss noch die gewünschte Datenbank aus, und testen Sie die Verbindung über die Schaltfläche Testverbindung. Danach können Sie die Einstellungen mit OK bestätigen.

Wenn Sie alles richtig gemacht haben, wird die Datenbankverbindung nun im Server-Explorer angezeigt. Erweitern Sie deren Knoten, werden alle Elemente der Northwind-Datenbank angezeigt (Tabellen, Ansichten, Typen usw.).

Abbildung 28.2 Der Server-Explorer

Aus dem Server-Explorer heraus können Sie eine markierte Tabelle in den Designer des typisierten DataSet ziehen. Dann wären alle Spalten der Tabelle Elemente des typisierten DataSet. Da wir uns vorgenommen haben, nur bestimmte Spalten hinzuzufügen, öffnen wir den Knoten der entsprechenden Tabelle und markieren nur die gewünschten Spalten. Halten Sie dabei die Taste Strg -Taste gedrückt. Ziehen Sie nun die markierten Spalten in den Designer. Haben Sie die ausgewählten Spalten der ersten Tabelle (z. B. Products) in den Designer gezogen, markieren Sie die erforderlichen Spalten der Tabelle Categories im Server-Explorer und ziehen diese ebenfalls in den Designer. Das Resultat sollte dann so aussehen wie in Abbildung 28.3.

Abbildung 28.3 Typisiertes DataSet im Designer

Das war bereits alles. Wie Sie in der Abbildung sehen können, erkennt der Designer, dass zwischen den beiden Tabellen Categories und Products eine Beziehung existiert, und fügt diese auch automatisch hinzu.

Sie sollten jetzt noch einen Blick in den Projektmappen-Explorer wagen. Die Schema-Datei für das typisierte DataSet ist hier als NWDataSet.xsd eingetragen. Wenn Sie sich alle Dateien im Projektmappen-Explorer anzeigen lassen (klicken Sie dazu auf die entsprechende Symbolleistenschaltfläche im Projektmappen-Explorer), erkennen Sie, dass der XSD-Datei drei Dateien untergeordnet sind: NWDataSet.Designer.cs, NWDataSet.xsc und NWDataSet.xss. Die beiden Letzteren interessieren uns nicht, denn hierbei handelt es sich nur um Dateien, die den Designer unterstützen. Die .cs-Datei werden wir aber gleich noch genauer unter die Lupe nehmen.


Galileo Computing - Zum Seitenanfang

28.1.2 Das Kommandozeilentool »XSD.exe« topZur vorigen Überschrift

Aufwendiger ist der Weg über das Kommandozeilentool xsd.exe. Obwohl Sie vermutlich nur in seltenen Fällen darauf zurückgreifen werden, möchte ich an dieser Stelle kurz darauf eingehen. Intern wird es natürlich auch vom Designer benutzt, den Sie im letzten Abschnitt kennengelernt haben.

Um ein typisiertes DataSet mit dem Tool zu erzeugen, müssen wir zuerst ein nicht typisiertes DataSet bereitstellen, in dem alle Schema-Informationen enthalten sind. Damit auch die DataRelation zwischen den Tabellen Products und Categories richtig erkannt wird, müssen wir die Beziehung mittels Code beschreiben. Alle anderen Metadaten besorgen wir uns über die Methode FillSchema. Zum Schluss rufen wir die Methode WriteXmlSchema des DataSet auf und schreiben die Schema-Informationen in eine XSD-Datei.


SqlConnection con = new SqlConnection();
con.ConnectionString = "...";
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT ... FROM Products; " +
                  "SELECT ... FROM Categories";
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.FillSchema(ds, SchemaType.Source);
DataColumn colDetail = ds.Tables[0].Columns["CategoryID"];
DataColumn colMaster = ds.Tables[1].Columns["CategoryID"];
DataRelation rel = new DataRelation("KategorieProdukte", 
                                    colMaster, colDetail);
ds.Relations.Add(rel);
ds.WriteXmlSchema(@"D:\DataSetSchema.xsd");

Nun wollen wir das Tool xsd.exe dazu benutzen, um aus der Schema-Datei eine Datei zu generieren, die das typisierte DataSet enthält. Es wird sich dabei um eine Datei mit der Dateierweiterung .cs handeln.

Rufen Sie das Tool an der Kommandozeile auf, und übergeben Sie ihm im ersten Parameter die zuvor erzeugte Schema-Datei. Dem zweiten Parameter übergeben Sie /dataset, also:


xsd.exe DataSetSchema.xsd /dataset 

Damit ist eine Klassendatei für das typisierte DataSet erzeugt worden, die Sie nun in andere Projekte einfügen und nutzen können.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual C# 2010

Visual C# 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: C/C++






 C/C++


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2010
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern