2014-04-01 18 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 = "" 
相關問題