与标题一样 - 问题是:
如何使用其他DataTable创建具有列结构的新DataTable?
我需要空的DataTable才能使用.Rows.Add()
方法。
代码:
DataTable dtFirst = new DataTable();
dtFirst.Columns.Add("column1");
dtFirst.Columns.Add("column2");
dtFirst.Columns.Add("column3");
FillDataTableFirst(); // before I create second DataTable - dtFirst is filled
// here I need dtSecond DataTable with same column structure
// i cant just copy first data table, because it contains data
DataTable dtSecond = ???;
答案 0 :(得分:15)
您正在寻找DataTable.Clone()
方法(自框架版本1.1起可用)。
Clone创建一个与原始结构相同的新DataTable DataTable,但不复制任何数据(新的DataTable不会 包含任何DataRows)。将结构和数据复制到新的 DataTable,使用Copy。
在你的例子中:
DataTable dtFirst = new DataTable();
dtFirst.Columns.Add("column1");
dtFirst.Columns.Add("column2");
dtFirst.Columns.Add("column3");
FillDataTableFirst(); // before I create second DataTable - dtFirst is filled
DataTable dtSecond = dtFirst.Clone();
答案 1 :(得分:8)
只需使用克隆架构的DataTable.Clone
而不是数据:
DataTable dtSecond = dtFirst.Clone(); // empty
现在您可以开始添加新行:
DataRow newRow = dtSecond.Rows.Add();
newRow.SetField("column1", "Value1");
newRow.SetField("column2", "Value2");
newRow.SetField("column3", "Value3");
答案 2 :(得分:5)
使用DataTable类的Clone()方法。