【问题标题】:Copying a DataTable without using the .Copy method不使用 .Copy 方法复制 DataTable
【发布时间】:2011-01-18 12:12:51
【问题描述】:

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

我需要偶尔清除表格并用来自不同数据表的新数据填充它。

我只是使用 targetTable = sourceTable.Copy(),但后来我上面的人失去了他们连接到的事件。

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

让我感到困惑的部分是,如果我以通用方式进行操作,那么我想将架构从源表完全转移到目标表。

有什么简单的方法吗? 我只是在比较列以确保名称/类型匹配,但后来我想如果我也可以传输架构,我可以使它更健壮。

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

【问题讨论】:

    标签: .net ado.net datatable


    【解决方案1】:

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

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

    【讨论】:

    • 我知道他们有这个想法。谢谢。
    【解决方案2】:

    你试过了吗

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 2015-01-05
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      相关资源
      最近更新 更多