28.3 Typisierte DataSets manuell im Designer erzeugen 

Ganz am Anfang haben Sie gesehen, dass es ganz einfach ist, unter Zuhilfenahme des Designers ein typisiertes DataSet zu erzeugen. Manchmal kommen Sie aber auch in die Situation, am typisierten DataSet Änderungen vornehmen zu müssen. Vielleicht wollen Sie sogar das komplette typisierte DataSet manuell anlegen.
28.3.1 DataTable manuell erzeugen 

Um eine DataTable bereitzustellen, aktivieren Sie die Toolbox und ziehen das Element DataTable mittels Drag & Drop in den Designer des typisierten DataSet. Alternativ bietet sich dazu auch das Kontextmenü des Designers an. Wählen Sie hier den Befehl Hinzufügen, hinter dem sich auch das Angebot einer DataTable verbirgt. Die dritte Alternative ist im Menü Ansicht • Hinzufügen zu finden.
Per Vorgabe heißt die neue Tabelle DataTable1. Sie können sie aber umbenennen. Markieren Sie dazu das Element in der Designeransicht. Im Eigenschaftsfenster können Sie danach den Namen festlegen.
28.3.2 Der DataTable Spalten hinzufügen 

Die neue Tabelle hat noch keine Spalten. Diese werden im nächsten Schritt festgelegt. Markieren Sie dazu die DataTable im Designer, und öffnen Sie deren Kontextmenü. Wählen Sie hier Hinzufügen. Im sich öffnenden Untermenü wird Ihnen daraufhin Spalte angeboten. Auch zu dieser Vorgehensweise gibt es über das Menü Daten eine alternative Möglichkeit.
Spalten zeichnen sich durch viele Eigenschaften aus. Ist eine Spalte im Designer markiert, können Sie im Eigenschaftsfenster deren Eigenschaften spezifisch einstellen (siehe Abbildung 28.4). Was Sie im Eigenschaftsfenster nicht finden, ist die Angabe, ob die Spalte eine Primärschlüsselspalte ist. Wie Sie sich erinnern, ist das auch eine Eigenschaft der DataTable, da mehrere Spalten auch den kombinierten Primärschlüssel einer Tabelle bilden können. Um eine oder auch mehrere Spalten zu Primärschlüsselspalten zu erklären, markieren Sie die in Frage kommenden Spalten im Designer, öffnen danach das Kontextmenü und wählen den Unterpunkt Primärschlüssel festlegen. Auch über das Menü Daten können Sie den Primärschlüssel festlegen.
Abbildung 28.4 Die Eigenschaften einer DataColumn im Eigenschaftsfenster
28.3.3 Beziehungen zwischen den Tabellen erstellen 

Haben Sie dem typisierten DataSet mehrere Tabellen hinzugefügt, möchten Sie vielleicht auch die Beziehung zwischen den Tabellen definieren. Klicken Sie mit der Maustaste auf ein beliebiges Element im Designer, öffnen Sie wieder das Kontextmenü, und wählen Sie Hinzufügen und Beziehung. Daraufhin öffnet sich ein Dialogfenster (siehe Abbildung 28.5), in dem Sie alle Einstellungen der neuen DataRelation vornehmen können.
Im oberen Teil des Fensters legen Sie den Namen der DataRelation fest. In den darunter angeordneten Dropdown-Listen wählen Sie die übergeordnete Tabelle (Mastertabelle) und die untergeordnete Tabelle (Detailtabelle) aus. Die Schlüsselspalten der über- und untergeordneten Tabelle werden im Listenfeld meist korrekt angepasst, können aber auch auf andere Spalten eingestellt werden.
In der unteren Hälfte des Dialogs definieren Sie die Eigenschaften der Beziehung. Der Dialog ist per Vorgabe so eingestellt, dass zwar die Beziehung erzeugt wird, nicht jedoch ein ForeignKeyConstraint-Objekt. Vielleicht erinnern Sie sich an die Aussagen in Kapitel 26, »ADO.NET – Daten im lokalen Speicher«: Ein ForeignKeyConstraint-Objekt hat die Aufgabe, zu steuern, wie Änderungen zwischen der Master- und der Detailtabelle im DataSet weitergegeben werden. Dient das typisierte DataSet nur dazu, Dateninformationen anzuzeigen, können Sie die Vorgabe des Dialogs beibehalten.
Wenn Sie jedoch davon ausgehen, dass Daten im DataSet modifiziert werden, sollten Sie die Option wählen, die sowohl eine Beziehungs- als auch eine Fremdschlüsseleinschränkung erzeugt. Sie können dann auch festlegen, wie Änderungen weitergegeben werden. Mit Regel aktualisieren legen Sie die Eigenschaft UpdateRule des ForeignKeyConstraints fest, mit Regel löschen die Eigenschaft DeleteRule und schließlich mit Regel akzeptieren/ablehnen die Eigenschaft AcceptRejectRule.
Abbildung 28.5 Dialogfenster zum Festlegen der Eigenschaften einer »DataRelation«
28.3.4 Weitergehende Betrachtungen 

Da Ihnen der Quellcode des typisierten DataSet zur Verfügung steht, spricht nichts dagegen, daran auch Anpassungen vorzunehmen, ganz so, wie es Ihren Erfordernissen entspricht. Ebenso ist es möglich, weitere Features hinzuzufügen, beispielsweise Eigenschaften und Methoden.