2014-04-01 78 views
1

我正在使用一个巨大的数据表进行调查分析。经常使用DataView在此数据表上使用行筛选,而不是经常调用SQL Server。DataTable的默认视图与实际表格数据不同

但问题是,一旦我通过

dv= dt.defaultview 
dv.rowfilter="id=10" 

工作正常过滤数据表。 DV具有过滤行

但是,当我们分配相同dt的另一种观点,主数据表默认视图是基于对于DV所做的filteration这是ID = 10

因此在即时窗口我检查改变这

dt.defaultview.totable().rows.count 

和20(这是因为DV做了filteration的)

dt.rows.count 

是1500这是正确的计数。

但我的问题是,这是怎么发生的,因为我没有触及数据表,我只为DV分配了过滤器。即使那么datatable的defaultview如何改变?

+1

我不是和你在一起。你正在通过修改它的'RowFilter'属性来改变表的'DefaultView'。你如何“分配相同的'DataTable'到另一个视图”? _“即使那么数据表的默认视图如何改变?”_如果你看看你发布的前两行代码,这是不是很明显? –

+0

对不起。我不确定这是因为我将该过滤器分配给新的数据视图。那么真正的defaultview会如何改变? dim dv as new dataview dv = dt.defaultview ............ –

+0

那么如果你运行'dv = dt.defaultview',那么'dv'就是'dt'的'DefaultView' 。 – sloth

回答

3

“即使那么datatable的defaultview如何改变?”如果你看看你发布的前两行代码,这不是很明显吗?

dv = dt.DefaultView 
dv.rowfilter = "id=10" 

如果你想移除该过滤器的DefaultView你必须分配空stringNothing

dt.DefaultView.RowFilter = "" 
相关问题