在 C# 中创建数据表

Muhammad Maisam Abbas 2023年1月30日 2021年4月29日
  1. 在 C# 中使用 DataTable 类创建数据表
  2. 在 C# 中向数据表添加行
  3. 在 C# 中将数据表的数据导出到 XML
  4. 在 C# 中将数据表的结构导出为 XML
在 C# 中创建数据表

本教程将讨论在 C# 中创建和填充数据表的方法。

在 C# 中使用 DataTable 类创建数据表

DataTable用于在 C# 中创建数据表。数据表表示带有 C# 中的关系数据的表。当我们首先使用 DataTable 类创建数据表时,它没有指定的架构。我们必须创建并添加 DataColumn的对象以指定数据表的结构。我们可以使用 C# 中的 DataTable.Columns.Add() 函数DataColumn 类的对象添加到 DataTable 类的对象。

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);
            
        }
    }
}

在上面的代码中,我们创建了名为 Customers 的数据表 workTable,并创建了两个不同的列,分别为 column1column2,其名称分别为 Column1Column2。我们通过向其添加两列来指定 workTable 的架构。现在,我们可以将数据以行的形式添加到我们的表中。

在 C# 中向数据表添加行

要在表中添加一行,我们必须创建 DataRow 类的对象。DataRow定义了一个新行,以将数据添加到 C# 中的表中。我们可以使用 C# 中的 DataTable.Row.Add() 函数DataRow 类的对象添加到 DataTable 类的对象。以下代码示例向我们展示了如何使用 C# 中的 DataRow 类将数据添加到表中。

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);
            
        }
    }
}

在上面的代码中,我们使用 workTable.NewRow() 函数初始化了 DataRow 类的实例 row1。我们在 row1 中的两列中添加了数据,并使用 C# 中的 workTable.Rows.Add(row1) 函数将 row1 添加到了 workTable 中。

我们还可以使用以下方法将新行添加到表中。

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

在上面的代码中,我们向 workTable 表添加了新行,而没有创建 DataRow 类的实例。下面给出了另一种可用于在 C# 中向我们的表插入新行的方法。

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

在上面的代码中,我们直接将值添加到 workTable 表的新行中,甚至没有声明对象数组。

在 C# 中将数据表的数据导出到 XML

现在,我们已经使用 DataTable 类创建了表,并通过 DataColumn 类定义了表的结构,并向表中添加了多行,现在可以显示表。我们可以使用 C# 中的 DataTable.WriteXml() 函数将整个表导出到 xml 文件中。DataTable.WriteXml(path) 函数用于将表的所有数据写入 path 中的 xml 文件。以下代码示例向我们展示了如何使用 C# 中的 DataTable.WriteXml() 函数将表数据写入 xml 文件。

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");
        }
    }
}

在上面的代码中,我们使用 C# 中的 workTable.WriteXml("workTable.xml") 函数将 workTable 表中的所有数据导出到 xml 文件 workTable.xml 中。workTable.xml 文件的内容在下面给出。

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

在 C# 中将数据表的结构导出为 XML

相反,我们也可以仅将表的架构或结构导出到 C# 中的 xml 文件中。DataTable.WriteXmlSchema(path) 函数用于将数据表的结构写入 path 中的 xml 文件。以下代码示例向我们展示了如何使用 C# 中的 DataTable.WriteXmlSchema(path) 函数将表的结构写入 xml 文件。

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");
        }
    }
}

在上面的代码中,我们使用 C# 中的 workTable.WriteXmlSchema("workTableSchema.xml") 函数将 workTable 表的结构导出到 xml 文件 workTableSchema.xml 中。workTable.Schema.xml 文件的内容在下面给出。

<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://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

相关文章 - Csharp DataTable