Créer DataTable en C#

Muhammad Maisam Abbas 16 février 2024
  1. Créer une table de données avec la classe DataTable en C#
  2. Ajouter des lignes à la table de données en C#
  3. Exporter les données de la table de données vers XML en C#
  4. Exporter la structure de la table de données vers XML en C#
Créer DataTable en C#

Ce didacticiel abordera les méthodes de création et de remplissage d’une table de données en C#.

Créer une table de données avec la classe DataTable en C#

La classe DataTable permet de créer une table de données en C#. Une table de données représente une table avec des données relationnelles en C#. Lorsque nous créons pour la première fois une table de données avec la classe DataTable, elle n’a pas de schéma spécifié. Nous devons créer et ajouter un objet de la classe DataColumn pour spécifier la structure de la table de données. On peut ajouter l’objet de la classe DataColumn à l’objet de la classe DataTable avec la fonction DataTable.Columns.Add() en C#.

using System.Data;

namespace data_table {
  class Program {
    static void Main(string[] args) {
      DataTable workTable = new DataTable("Customers");
      DataColumn column1 = new DataColumn("Column1");
      DataColumn column2 = new DataColumn("Column2");
      workTable.Columns.Add(column1);
      workTable.Columns.Add(column2);
    }
  }
}

Dans le code ci-dessus, nous avons créé la table de données DataTable avec le nom Customers et deux colonnes différentes, column1 et column2, ayant respectivement les noms Column1 et Column2. Nous avons spécifié le schéma de la workTable en y ajoutant les deux colonnes. Nous pouvons maintenant ajouter des données à notre table sous forme de lignes.

Ajouter des lignes à la table de données en C#

Pour ajouter une ligne à notre table, nous devons créer un objet de la classe DataRow. La classe DataRow définit une nouvelle ligne pour ajouter des données à notre table en C#. On peut ajouter l’objet de la classe DataRow à l’objet de la classe DataTable avec la fonction DataTable.Row.Add() en C#. L’exemple de code suivant nous montre comment ajouter des données à notre table avec la classe DataRow en C#.

using System.Data;

namespace data_table {
  class Program {
    static void Main(string[] args) {
      DataTable workTable = new DataTable("Customers");
      DataColumn column1 = new DataColumn("Column1");
      DataColumn column2 = new DataColumn("Column2");
      workTable.Columns.Add(column1);
      workTable.Columns.Add(column2);
      DataRow row1 = workTable.NewRow();
      row1["Column1"] = "value1";
      row1["Column2"] = "value2";
      workTable.Rows.Add(row1);
    }
  }
}

Dans le code ci-dessus, nous avons initialisé l’instance row1 de la classe DataRow avec la fonction workTable.NewRow(). Nous avons ajouté des données pour les deux colonnes dans la row1 et ajouté row1 à la workTable avec la fonction workTable.Rows.Add(row1) en C#.

Nous pouvons également ajouter une nouvelle ligne à notre tableau avec l’approche suivante.

object[] o = { "object value1", "object value2" };
workTable.Rows.Add(o);

Dans le code ci-dessus, nous avons ajouté une nouvelle ligne à la table workTable sans créer d’instance de la classe DataRow. Une autre approche qui peut être utilisée pour insérer une nouvelle ligne dans notre table en C# est donnée ci-dessous.

workTable.Rows.Add("direct value1", "direct value2");

Dans le code ci-dessus, nous avons directement ajouté des valeurs à une nouvelle ligne de la table workTable sans même déclarer un tableau d’objets.

Exporter les données de la table de données vers XML en C#

Maintenant que nous avons créé notre table avec la classe DataTable, défini sa structure avec la classe DataColumn, et ajouté plusieurs lignes à notre table, nous pouvons maintenant afficher notre table. Nous pouvons exporter toute notre table vers un fichier xml avec la fonction DataTable.WriteXml() en C#. La fonction DataTable.WriteXml(path) permet d’écrire toutes les données de notre table dans un fichier xml dans le path. L’exemple de code suivant nous montre comment nous pouvons écrire nos données de table dans un fichier xml avec la fonction DataTable.WriteXml() en C#.

using System.Data;

namespace data_table {
  class Program {
    static void Main(string[] args) {
      DataTable workTable = new DataTable("Customers");
      DataColumn column1 = new DataColumn("Column1");
      DataColumn column2 = new DataColumn("Column2");
      workTable.Columns.Add(column1);
      workTable.Columns.Add(column2);
      DataRow row1 = workTable.NewRow();
      row1["Column1"] = "value1";
      row1["Column2"] = "value2";
      workTable.Rows.Add(row1);
      object[] o = { "object value1", "object value2" };
      workTable.Rows.Add(o);
      workTable.Rows.Add("direct value1", "direct value2");
      workTable.WriteXml("workTable.xml");
    }
  }
}

Dans le code ci-dessus, nous avons exporté toutes les données de la table workTable vers le fichier xml workTable.xml avec la fonction workTable.WriteXml("workTable.xml") en C#. Le contenu du fichier workTable.xml est indiqué ci-dessous.

<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  <Customers>
    <Column1>value1</Column1>
    <Column2>value2</Column2>
  </Customers>
  <Customers>
    <Column1>object value1</Column1>
    <Column2>object value2</Column2>
  </Customers>
  <Customers>
    <Column1>direct value1</Column1>
    <Column2>direct value2</Column2>
  </Customers>
</DocumentElement>

Exporter la structure de la table de données vers XML en C#

Inversement, nous pouvons également exporter uniquement le schéma ou la structure de notre table vers un fichier xml en C#. La fonction DataTable.WriteXmlSchema(path) permet d’écrire la structure de notre table de données dans un fichier xml dans le path. L’exemple de code suivant nous montre comment écrire la structure de notre table dans un fichier xml avec la fonction DataTable.WriteXmlSchema(path) en C#.

using System.Data;

namespace data_table {
  class Program {
    static void Main(string[] args) {
      DataTable workTable = new DataTable("Customers");
      DataColumn column1 = new DataColumn("Column1");
      DataColumn column2 = new DataColumn("Column2");
      workTable.Columns.Add(column1);
      workTable.Columns.Add(column2);
      DataRow row1 = workTable.NewRow();
      row1["Column1"] = "value1";
      row1["Column2"] = "value2";
      workTable.Rows.Add(row1);
      object[] o = { "object value1", "object value2" };
      workTable.Rows.Add(o);
      workTable.Rows.Add("direct value1", "direct value2");
      workTable.WriteXml("workTable.xml");
      workTable.WriteXmlSchema("workTableSchema.xml");
    }
  }
}

Dans le code ci-dessus, nous avons exporté la structure de la table workTable vers le fichier xml workTableSchema.xml avec la fonction workTable.WriteXmlSchema("workTableSchema.xml") en C#. Le contenu du fichier workTable.Schema.xml est indiqué ci-dessous.

<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Customers" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Customers">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Column1" type="xs:string" minOccurs="0" />
              <xs:element name="Column2" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>
Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Csharp DataTable