如何从其他数据表创建具有列结构的新数据表
本文关键字:数据表 结构 创建 其他 | 更新日期: 2023-09-27 18:32:50
>如标题 - 问题是:
如何从其他数据表创建具有列结构的新数据表?
我需要空的数据表才能在其中使用.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 = ???;
您正在寻找DataTable.Clone()
方法(从框架版本 1.1 开始可用)。
从文档中:
克隆创建具有与原始数据表相同的结构的新数据表 数据表,但不复制任何数据(新的数据表不会 包含任何数据行)。将结构和数据复制到新的 数据表,使用复制。
在您的示例中:
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();
只需使用克隆模式但不克隆数据的DataTable.Clone
:
DataTable dtSecond = dtFirst.Clone(); // empty
现在您可以开始添加新行了:
DataRow newRow = dtSecond.Rows.Add();
newRow.SetField("column1", "Value1");
newRow.SetField("column2", "Value2");
newRow.SetField("column3", "Value3");
使用 DataTable 类的 Clone() 方法。