在 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
,并创建了两个不同的列,分别为 column1
和 column2
,其名称分别为 Column1
和 Column2
。我们通过向其添加两列来指定 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="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>
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