【问题标题】:DataRow.RowError is not getting copied when using DataTable.Load使用 DataTable.Load 时未复制 DataRow.RowError
【发布时间】:2012-07-05 17:25:35
【问题描述】:

我必须将行从一个表复制到另一个。在源表中,我可以在行上设置 RowError。 当我这样做时:

targetTable.BeginLoadData();
targetTable.Load( new DataTableReader( sourceTable ) )
targetTable.EndLoadData();

目标表不会从源表的行中复制行错误。 谁能告诉我该怎么做才能让它工作? 谢谢。

编辑:我不想丢失目标表中已经存在的数据。我也不想更改参考。

【问题讨论】:

    标签: c# .net ado.net datatable


    【解决方案1】:

    试试这个:

    targetTable = sourceTable.Copy();
    

    在这种情况下,创建读取器不会给您预期的结果,因为它(读取器)的目标是提取每一行的值,而不是附加属性。

    更新:

    在这种情况下,您应该:

    foreach (DataRow drImport in sourceTable.Rows) {
        targetTable.ImportRow(drImport);
    }
    

    抱歉,就在发布之前,我看到了您对参考文献的其他观察。恐怕您不能将同一行(相同的引用)分配给两个或多个表。 See this.

    【讨论】:

    • 也许我的问题并不清楚。我不想丢失目标表中已经存在的数据。我也不想更改参考。 targetTable 正在引用内存中的 DataTable,我的应用程序中的其他组件也引用了该数据表。
    • 我的意思是引用targetTable,而不是行。 :)
    猜你喜欢
    • 2012-08-30
    • 1970-01-01
    • 2019-07-29
    • 2012-03-26
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    相关资源
    最近更新 更多