使用DataTable.Load时,不会复制DataRow.RowError

时间:2012-07-05 17:25:35

标签: c# .net ado.net datatable

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

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

目标表不会从源表中复制其行上的行错误。 任何人都可以告诉我应该做些什么才能让它发挥作用? 感谢。

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

1 个答案:

答案 0 :(得分:1)

试试这个:

targetTable = sourceTable.Copy();

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

<强>更新

在这种情况下,你应该:

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

对不起,就在发布之前我已经看到了你对该参考的其他观察。我担心你不能将同一行(相同的参考)分配给两个或更多的表。 See this