在 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