Lire des données XML dans un jeu de données dans des applications .NET Framework

Remarque

Les jeux de données et les classes associées sont des technologies .NET Framework héritées qui datent du début des années 2000. Elles permettent aux applications d’utiliser des données en mémoire pendant que les applications sont déconnectées de la base de données. Elles sont particulièrement utiles aux applications qui permettent aux utilisateurs de modifier des données, et de rendre ces changements persistants dans la base de données. Même si les jeux de données sont une technologie très efficace, nous vous recommandons d’utiliser Entity Framework Core pour les nouvelles applications .NET. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet. De plus, il présente une interface de programmation plus simple.

ADO.NET fournit des méthodes simples pour utiliser les données XML. Dans cette procédure pas à pas, vous créez une application Windows qui charge des données XML dans un jeu de données. Le jeu de données s’affiche ensuite dans un contrôle DataGridView. Enfin, un schéma XML basé sur le contenu du fichier XML s'affiche dans une zone de texte.

Prérequis

Pour terminer ce didacticiel, vous avez besoin de Visual Studio avec les charges de travail suivantes installées :

  • Développement .NET Desktop
  • Traitement et stockage de données

Pour les installer, ouvrez Visual Studio Installer et choisissez Modifier (ou Plus>Modifier) en regard de la version de Visual Studio que vous souhaitez modifier. Consultez Modifier Visual Studio.

Création d'un projet

Créez un projet application Windows Forms pour C# ou Visual Basic. Nommez le projet ReadingXML.

Générer le fichier XML à lire dans le jeu de données

Étant donné que cette procédure pas à pas se concentre sur la lecture de données XML dans un jeu de données, le contenu d’un fichier XML est fourni.

  1. Dans le menu Projet, sélectionnez Ajouter un nouvel élément.

  2. Sélectionnez Fichier XML, nommez le fichier authors.xml, puis sélectionnez Ajouter.

    Le fichier XML est chargé dans le concepteur et il est prêt à être modifié.

  3. Collez les données XML suivantes dans l’éditeur sous la déclaration XML :

    <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. Dans le menu Fichier, sélectionnez Enregistrer authors.xml.

Créer l’interface utilisateur

L’interface utilisateur de cette application comprend les éléments suivants :

  • Contrôle DataGridView qui affiche le contenu du fichier XML en tant que données.

  • Contrôle TextBox qui affiche le schéma XML pour le fichier XML.

  • Deux contrôles Button.

    • Un bouton lit le fichier XML dans le jeu de données et l’affiche dans le contrôle DataGridView.

    • Un deuxième bouton extrait le schéma du jeu de données. Via StringWriter, il l’affiche dans le contrôle TextBox.

Pour ajouter des contrôles au formulaire

  1. Ouvrir Form1 en mode Création.

  2. À partir de la boîte à outils, faites glisser les contrôles suivants sur le formulaire :

  3. Définissez les propriétés suivantes :

    Control Propriété Paramètre
    TextBox1 Multiline true
    BarreDéfilement Vertical
    Button1 Nom ReadXmlButton
    Texte Read XML
    Button2 Nom ShowSchemaButton
    Texte Show Schema

Créer le jeu de données qui reçoit les données XML

Dans cette étape, vous créez un jeu de données nommé authors. Pour plus d’informations sur les jeux de données, consultez Outils de jeux de données dans Visual Studio.

  1. Dans l’Explorateur de solutions, sélectionnez le fichier source pour Form1, puis sélectionnez le bouton Concepteur de vues dans la barre d’outils Explorateur de solutions.

  2. Dans la Boîte à outils, onglet Données, faites glisser un DataSet sur Form1.

  3. Dans la boîte de dialogue Ajouter un jeu de données, sélectionnez Jeu de données non typé, puis sélectionnez OK.

    DataSet1 est ajouté à la barre d’état des composants.

  4. Dans la fenêtre Propriétés, définissez les propriétés Nom et DataSetName pour AuthorsDataSet.

Créer le gestionnaire d’événements pour lire le fichier XML dans le jeu de données

Le bouton Lire XML lit le fichier XML dans le jeu de données. Il définit ensuite les propriétés sur le contrôle DataGridView qui le lient au jeu de données.

  1. Dans l’Explorateur de solutions, sélectionnez Form1, puis sélectionnez le bouton Concepteur de vues dans la barre d’outils Explorateur de solutions.

  2. Double-cliquez sur le bouton Lire XML.

    L’éditeur de code s’ouvre au niveau du gestionnaire d’événements ReadXmlButton_Click.

  3. Tapez le code suivant dans le gestionnaire d’événements 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. Dans le code du gestionnaire d’événements ReadXMLButton_Click, remplacez l’entrée filepath = par le chemin correct.

Créer le gestionnaire d’événements pour afficher le schéma dans la zone de texte

Le bouton Afficher le schéma crée un objet StringWriter qui est rempli avec le schéma et qui s’affiche dans le contrôle TextBox.

  1. Dans l’Explorateur de solutions, sélectionnez Form1, puis sélectionnez le bouton Concepteur de vues.

  2. Double-cliquez sur le bouton Afficher le schéma.

    L’éditeur de code s’ouvre au niveau du gestionnaire d’événements ShowSchemaButton_Click.

  3. Collez le code suivant dans le gestionnaire d’événements ShowSchemaButton_Click.

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

Tester le formulaire

Vous pouvez maintenant tester le formulaire pour vous assurer qu’il se comporte comme prévu.

  1. Sélectionnez F5 pour exécuter l’application.

  2. Sélectionnez le bouton Lire XML.

    DataGridView affiche le contenu du fichier XML.

  3. Sélectionnez le bouton Afficher le schéma.

    La zone de texte affiche le schéma XML pour le fichier XML.

Étapes suivantes

Cette procédure pas à pas présente les bases de la lecture d’un fichier XML dans un jeu de données, ainsi que la création d’un schéma basé sur le contenu du fichier XML. Voici quelques tâches que vous effectuerez peut-être ensuite :

  • Modifiez les données du jeu de données et réécrivez-les au format XML. Pour plus d’informations, consultez WriteXml.

  • Modifiez les données du jeu de données et écrivez-les dans une base de données.