在不使用.Copy方法的情况下复制DataTable

时间:2010-02-18 20:09:42

标签: .net ado.net datatable

我有一个DataTable让人们接触到不同的列更改事件,等等......

我需要偶尔清理表格,并用不同的数据表填充新数据。

我只是使用了targetTable = sourceTable.Copy(),但是然后我上面的人放松了他们所连接的事件。

我想我可以为DataTables编写一个扩展方法来执行此操作,因此如果情况再次出现,我可以重复使用它。

我被挂断的部分是,如果我以通用的方式进行,那么我想将模式从源表完全转移到目标表。

有没有简单的方法呢? 我只是在比较列,以确保名称/类型匹配,但后来我认为如果我也可以转移模式,我可以使它更健壮。

看起来有一种方法可以通过使用ReadXMLSchema和WriteXMLSchema来传输模式,但我想知道它们是不是一种eaiser方式。

2 个答案:

答案 0 :(得分:1)

http://msdn.microsoft.com/en-us/library/system.data.datatable.merge.aspx 传输架构和所有数据,如果需要,保留更改或行状态。

DataTable.Merge(dt2, true, MissingSchemaAction.Add);

答案 1 :(得分:0)

你试过吗

YourTable.Clear() - 只是删除记录,但没有任何其他定义 YourTable.Merge(TheOtherTable) - 将记录从一个合并到另一个。