2012-12-04 20 views
2

考慮下面的代碼:數據視圖Table.Rows.Count將返回1時,有沒有這樣的行

DataView deletedLOV = new DataView(tbltmp, "prociLOV_Deleted=1", "prociLOV_ID", 
            DataViewRowState.CurrentRows); 
DataView addedLOV = new DataView(tbltmp, "prociLOV_Id>1", "prociLOV_ID", 
           DataViewRowState.CurrentRows); 
int deletedLOVcount=deletedLOV.Table.Rows.Count; 
int addedLOVcount=addedLOV.Table.Rows.Count; 

prociLOV_Deleted設置爲1,當一條記錄被刪除。

但是,即使沒有記錄被刪除deletedLOVcount返回值1。而且同樣具有addedLOVcount當有與proci_ID> 1沒有記錄,它也返回計數AS1

回答

4

DataView引用它是通過Table原始數據表屬性。但它不共享相同的數據。 DataTable包含沒有應用過濾器的原始數據,而DataView僅包含應用過濾器之後的記錄。

您將通過DataView.Count得到正確的計數:

int deletedLOVcount = deletedLOV.Count; 

MSDN:

獲取的記錄數的數據視圖的RowFilter後 RowStateFilter已經被應用。

+0

但expected..Rows被添加到什麼時候加入到addedLOV過濾 – user1869914

+0

@ user1869914的deletedLOV的行篩選器不工作:那麼,是什麼'DataView.Count'回報的,什麼是'DataView.Table.Rows。計數'返回和兩個都是正確的? –

+0

,但我需要得到那些被過濾的行..很想從數據網格中獲取這些已過濾的行 – user1869914

相關問題