Hallo Rene,
DataSet und DataTable befinden sich im
System.Data-Namespace.
So eine Information findet man immer in der SDK-Doku/MSDN.
schemaname und filename sind
Variablennamen mit den korrekten Strings für die beiden Dateien.
Die Schemadatei sollte die Extension xsd haben.
Beide Dateien müssen eine korrekte xml-Struktur haben; ich habe darauf verzichtet, vollständige Dateien zu kopieren. Bei der Fehlermeldung mit "@ID" habe ich einen Fehler gemacht; die Tabelle in der Schema-Datei muss so deklariert werden:
XML-Daten
1: 2: 3: 4: 5: 6: 7:
| <xs:element name="Frage"> <xs:complexType> <xs:attribute name="ID" type="xs:int" /> <xs:attribute name="Name" type="xs:string" /> <xs:attribute name="Wert" type="xs:string" /> </xs:complexType> </xs:element> |
Erklärung: Felder, die als xs:element deklariert werden, werden in der xml-Datei als eigenes Element eingetragen; Felder, die als xs:attribute deklariert werden, stehen in einer Datenzeile. Ein Element wird bei UniqueConstraints ohne '@', ein Attribut mit '@' angegeben.
Ich schlage vor, dass Du per Code (oder per IDE) eine
DataTable erzeugst mit den benötigten Feldern und diese Struktur mit
WriteXmlSchema abspeicherst; dann siehst Du genau, wie sie aussehen soll. Das habe ich mit meinem Hinweis "nachfragen" gemeint. Du kannst nicht erwarten, dass Du vollständigen Code bekommst, sondern musst Dich mit den dazu gehörenden Techniken ernsthaft befassen.
Falls nötig, solltest Du eine Einführung in die DB-Verarbeitung unter NET z.B. in
OpenBook Visual C# Kap.25 ff. durcharbeiten.
Übrigens ist es äußerst ungünstig, bei jeder neuen Wortsuche das DataSet zu erzeugen und neu einzulesen. Das gehört z.B. in das FormLoad-Ereignis. In der Methode wortsuche wird dann darauf zugegriffen. Gleiches gilt für die Zufallszahl:
Random() wird einmal erzeugt und dann für jede neue Zufallszahl mit
Next aufgerufen.
Für die Suche eines speziellen Datensatzes steht übrigens die Methode
DataTable.Rows.Find() zur Verfügung.
Jürgen