DataView过滤器不适用于在另一个DataTable中导入的行

时间:2016-09-26 23:11:36

标签: c# datatable

我循环使用1个DataTable并使用DataView.RowFilter从第二个DataTable查找值并在第三个DataTable中插入值。对于DataTable 1上的每次迭代,第二个DataTable中可能有多个匹配的行,有时第二个DataTable中的相同行在DataTable 1的另一个迭代中再次匹配。

在第3个DataTable中插入值之前,我需要检查该值是否已经插入到前一个循环迭代中。如果尚未插入行,我将使用dt3.ImportRow()

在DataTable 3中添加行

我的第一个RowFilter正常工作以返回DataTable 2中的正确行,但我检查DataTable 3的第二个RowFilter总是返回0行,导致重复的行被添加。

DataView dv2 = new DataView(dt2);
dv2.RowStateFilter = DataViewRowState.CurrentRows;

内圈:

dv2.RowFilter = <some condition>;
dv2.RowStateFilter = DataViewRowState.CurrentRows;

还试过:

dv2.RowStateFilter = DataViewRowState.AddedRows;

代码有什么问题?

编辑1: 如果我每次在循环内构造一个新的DataView,那么过滤器就可以正常工作。有没有办法在向DataTable添加行时自动刷新DataView?

0 个答案:

没有答案