Crear DataTable en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. Crear tabla de datos con la clase DataTable en C#
  2. Agregar filas a la tabla de datos en C#
  3. Exportar datos de la tabla a XML en C#
  4. Exportar estructura de tabla de datos a XML en C#
Crear DataTable en C#

Este tutorial discutirá los métodos para crear y llenar una tabla de datos en C#.

Crear tabla de datos con la clase DataTable en C#

La clase DataTable se utiliza para crear una tabla de datos en C#. Una tabla de datos representa una tabla con datos relacionales en C#. Cuando creamos por primera vez una tabla de datos con la clase DataTable, no tiene un esquema específico. Tenemos que crear y agregar un objeto de la clase DataColumn para especificar la estructura de la tabla de datos. Podemos agregar el objeto de la clase DataColumn al objeto de la clase DataTable con la función 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);
    }
  }
}

En el código anterior, creamos la tabla de datos workTable con el nombre Customers y dos columnas diferentes, column1 y column2, con los nombres Column1 y Column2, respectivamente. Especificamos el esquema de la workTable añadiéndole ambas columnas. Ahora podemos agregar datos a nuestra tabla en forma de filas.

Agregar filas a la tabla de datos en C#

Para agregar una fila a nuestra tabla, tenemos que crear un objeto de la clase DataRow. La clase DataRow define una nueva fila para agregar datos a nuestra tabla en C#. Podemos agregar el objeto de la clase DataRow al objeto de la clase DataTable con la función DataTable.Row.Add() en C#. El siguiente ejemplo de código nos muestra cómo podemos agregar datos a nuestra tabla con la clase 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);
    }
  }
}

En el código anterior, inicializamos la instancia row1 de la clase DataRow con la función workTable.NewRow(). Agregamos datos para ambas columnas en la row1 y agregamos row1 a la workTable con la función workTable.Rows.Add(row1) en C#.

También podemos agregar una nueva fila a nuestra tabla con el siguiente enfoque.

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

En el código anterior, agregamos una nueva fila a la tabla workTable sin crear una instancia de la clase DataRow. Otro enfoque que se puede utilizar para insertar una nueva fila en nuestra tabla en C# se muestra a continuación.

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

En el código anterior, agregamos valores directamente a una nueva fila en la tabla workTable sin siquiera declarar un array de objetos.

Exportar datos de la tabla a XML en C#

Ahora que hemos creado nuestra tabla con la clase DataTable, definido su estructura con la clase DataColumn y agregado varias filas a nuestra tabla, ahora podemos mostrar nuestra tabla. Podemos exportar toda nuestra tabla a un archivo xml con la función DataTable.WriteXml() en C#. La función DataTable.WriteXml(path) se utiliza para escribir todos los datos de nuestra tabla en un archivo xml en la path. El siguiente ejemplo de código nos muestra cómo podemos escribir los datos de nuestra tabla en un archivo xml con la función 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");
    }
  }
}

En el código anterior, exportamos todos los datos dentro de la tabla workTable al archivo xml workTable.xml con la función workTable.WriteXml("workTable.xml") en C#. El contenido del archivo workTable.xml se proporciona a continuación.

<?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>

Exportar estructura de tabla de datos a XML en C#

Por el contrario, también podemos exportar solo el esquema o la estructura de nuestra tabla a un archivo xml en C#. La función DataTable.WriteXmlSchema(path) se utiliza para escribir la estructura de nuestra tabla de datos en un archivo xml en la path. El siguiente ejemplo de código nos muestra cómo podemos escribir la estructura de nuestra tabla en un archivo xml con la función 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");
    }
  }
}

En el código anterior, exportamos la estructura de la tabla workTable al archivo xml workTableSchema.xml con la función workTable.WriteXmlSchema("workTableSchema.xml") en C#. El contenido del archivo workTable.Schema.xml se muestra a continuación.

<?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

Artículo relacionado - Csharp DataTable