Lesen von XML-Daten in ein Dataset in .NET Framework-Anwendungen

Hinweis

Datasets und verwandte Klassen sind ältere .NET-Technologien aus den frühen 2000er Jahren, die es Anwendungen ermöglichen, mit Daten im Arbeitsspeicher zu arbeiten, während die Anwendungen von der Datenbank getrennt sind. Sie sind besonders nützlich für Anwendungen, die es Benutzern ermöglichen, Daten zu ändern und die Änderungen wieder in der Datenbank zu speichern. Obwohl sich Datasets als sehr erfolgreiche Technologie erwiesen haben, empfehlen wir, dass neue .NET-Anwendungen Entity Framework Core verwenden. Entity Framework bietet eine natürlichere Möglichkeit, mit tabellarischen Daten als Objektmodelle zu arbeiten, und verfügt über eine einfachere Programmierschnittstelle.

ADO.NET bietet einfache Methoden zum Arbeiten mit XML-Daten. In dieser exemplarischen Vorgehensweise erstellen Sie eine Windows-Anwendung, die XML-Daten in ein Dataset lädt. Dann wird das Dataset in einem DataGridView-Steuerelement angezeigt. Abschließend wird ein auf dem Inhalt der XML-Datei basierendes XML-Schema in einem Textfeld angezeigt.

Voraussetzungen

Um dieses Tutorial abzuschließen, müssen Sie Visual Studio mit den folgenden Workloads installiert haben:

  • .NET Desktopentwicklung
  • Datenspeicherung und -verarbeitung

Um diese zu installieren, öffnen Sie Visual Studio-Installer und wählen Ändern (oder Weitere>Ändern) neben der Version von Visual Studio aus, die Sie ändern möchten. Weitere Informationen finden Sie im Artikel Ändern von Visual Studio durch Hinzufügen oder Entfernen von Arbeitsauslastungen und Komponenten.

Ein neues Projekt erstellen

Erstellen Sie ein neues Projekt des Typs Windows Forms-App, entweder für C# oder für Visual Basic. Geben Sie dem Projekt den Namen ReadingXML.

Generieren der XML-Datei, die in das Dataset eingelesen werden soll

Da sich diese exemplarische Vorgehensweise auf das Einlesen von XML-Daten in ein Dataset konzentriert, wird der Inhalt einer XML-Datei bereitgestellt.

  1. Wählen Sie im Menü Projekt den Eintrag Neues Element hinzufügen aus.

  2. Wählen Sie XML-Datei aus, geben Sie der Datei den Namen authors.xml, und wählen Sie dann Hinzufügen aus.

    Die XML-Datei wird in den Designer geladen und kann bearbeitet werden.

  3. Fügen Sie die folgenden XML-Daten unter der XML-Deklaration in den Editor ein:

    <Authors_Table>
      <authors>
        <au_id>172-32-1176</au_id>
        <au_lname>White</au_lname>
        <au_fname>Johnson</au_fname>
        <phone>408 496-7223</phone>
        <address>10932 Bigge Rd.</address>
        <city>Menlo Park</city>
        <state>CA</state>
        <zip>94025</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>213-46-8915</au_id>
        <au_lname>Green</au_lname>
        <au_fname>Margie</au_fname>
        <phone>415 986-7020</phone>
        <address>309 63rd St. #411</address>
        <city>Oakland</city>
        <state>CA</state>
        <zip>94618</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>238-95-7766</au_id>
        <au_lname>Carson</au_lname>
        <au_fname>Cheryl</au_fname>
        <phone>415 548-7723</phone>
        <address>589 Darwin Ln.</address>
        <city>Berkeley</city>
        <state>CA</state>
        <zip>94705</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>267-41-2394</au_id>
        <au_lname>Hunter</au_lname>
        <au_fname>Anne</au_fname>
        <phone>408 286-2428</phone>
        <address>22 Cleveland Av. #14</address>
        <city>San Jose</city>
        <state>CA</state>
        <zip>95128</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>274-80-9391</au_id>
        <au_lname>Straight</au_lname>
        <au_fname>Dean</au_fname>
        <phone>415 834-2919</phone>
        <address>5420 College Av.</address>
        <city>Oakland</city>
        <state>CA</state>
        <zip>94609</zip>
        <contract>true</contract>
      </authors>
    </Authors_Table>
    
  4. Wählen Sie im Menü Datei den Befehl „authors.xml“ speichern aus.

Erstellen der Benutzeroberfläche

Die Benutzeroberfläche für diese Anwendung umfasst die folgenden Elemente:

  • Ein DataGridView-Steuerelement, das den Inhalt der XML-Datei als Daten anzeigt.

  • Ein TextBox-Steuerelement, das das XML-Schema für die XML-Datei anzeigt.

  • Zwei Button-Steuerelemente.

    • Eine Schaltfläche liest die XML-Datei in das Dataset ein und zeigt sie im Steuerelement DataGridView an.

    • Eine zweite Schaltfläche extrahiert das Schema aus dem Dataset und zeigt es über einen StringWriter im Steuerelement TextBox an.

So fügen Sie dem Formular Steuerelemente hinzu

  1. Öffnen Sie Form1 in der Entwurfsansicht.

  2. Ziehen Sie die folgenden Steuerelemente aus der Toolbox auf das Formular:

  3. Legen Sie die folgenden Eigenschaften fest:

    Control Eigenschaft Einstellung
    TextBox1 Mehrzeilig true
    ScrollBars Vertikal
    Button1 Name ReadXmlButton
    Text Read XML
    Button2 Name ShowSchemaButton
    Text Show Schema

Erstellen des Datasets, das die XML-Daten empfängt

In diesem Schritt erstellen Sie ein neues Dataset mit dem Namen authors. Weitere Informationen zu Datasets finden Sie unter Datasettools in Visual Studio.

  1. Wählen Sie im Projektmappen-Explorer die Quelldatei für Form1 aus, und klicken Sie dann auf der Symbolleiste des Projektmappen-Explorers auf die Schaltfläche Designer anzeigen.

  2. Ziehen Sie ein Dataset aus der Registerkarte „Daten“ der Toolbox auf Form1.

  3. Wählen Sie im Dialogfeld Dataset hinzufügen die Option Nicht typisiertes Dataset und dann OK aus.

    DataSet1 wird der Komponentenleiste hinzugefügt.

  4. Legen Sie im Fenster Eigenschaften die Eigenschaften Name und DataSetName für AuthorsDataSet fest.

Erstellen des Ereignishandlers zum Einlesen der XML-Datei in das Dataset

Die Schaltfläche XML lesen liest die XML-Datei in das Dataset ein. Anschließend werden Eigenschaften für das Steuerelement DataGridView festgelegt, die es an das Dataset binden.

  1. Wählen Sie im Projektmappen-Explorer das Element Form1 aus, und klicken Sie dann auf der Symbolleiste des Projektmappen-Explorers auf die Schaltfläche Designer anzeigen.

  2. Doppelklicken Sie auf die Schaltfläche XML lesen.

    Der Code-Editor öffnet sich beim Ereignishandler ReadXmlButton_Click.

  3. Kopieren Sie den folgenden Code in den Ereignishandler ReadXmlButton_Click:

    private void ReadXmlButton_Click(object sender, EventArgs e)
    {
        string filePath = "Complete path where you saved the XML file";
    
        AuthorsDataSet.ReadXml(filePath);
    
        dataGridView1.DataSource = AuthorsDataSet;
        dataGridView1.DataMember = "authors";
    }
    
  4. Ändern Sie im Code des Ereignishandlers ReadXMLButton_Click den Eintrag filepath = in den richtigen Pfad.

Erstellen des Ereignishandlers zum Anzeigen des Schemas im Textfeld

Die Schaltfläche Schema anzeigen erstellt ein StringWriter-Objekt, das mit dem Schema aufgefüllt und im Steuerelement TextBox angezeigt wird.

  1. Wählen Sie im Projektmappen-Explorer das Element Form1 und dann die Schaltfläche Designer anzeigen aus.

  2. Doppelklicken Sie auf die Schaltfläche Schema anzeigen.

    Der Code-Editor öffnet sich beim Ereignishandler ShowSchemaButton_Click.

  3. Fügen im ShowSchemaButton_Click-Ereignishandler den folgenden Code ein.

    private void ShowSchemaButton_Click(object sender, EventArgs e)
    {
        System.IO.StringWriter swXML = new System.IO.StringWriter();
        AuthorsDataSet.WriteXmlSchema(swXML);
        textBox1.Text = swXML.ToString();
    }
    

Testen des Formulars

Sie können das Formular jetzt testen, um sicherzustellen, dass das Verhalten wie erwartet ausfällt.

  1. Drücken Sie F5, um die Anwendung auszuführen.

  2. Klicken Sie auf die Schaltfläche XML lesen.

    „DataGridView“ zeigt den Inhalt der XML-Datei an.

  3. Wählen Sie die Schaltfläche Schema anzeigen aus.

    Das Textfeld zeigt das XML-Schema für die XML-Datei an.

Nächste Schritte

In dieser exemplarischen Vorgehensweise haben Sie die Grundlagen des Einlesens einer XML-Datei in ein Dataset kennengelernt und erfahren, wie Sie ein Schema auf Grundlage des Inhalts der XML-Datei erstellen. Im Folgenden sind einige Aufgaben aufgeführt, die Sie als Nächstes ausführen können:

  • Bearbeiten Sie die Daten im Dataset, und geben Sie sie als XML zurück. Weitere Informationen finden Sie unter WriteXml.

  • Bearbeiten Sie die Daten im Dataset, und schreiben Sie sie in eine Datenbank.