2009-05-19 45 views
5

假設我有一列稱爲A,我要檢查是否爲空或空白,什麼是檢查這個使用數據視圖的RowFilter,它的正確方法:我如何檢查空白DataView.RowFilter

DataTable dt = GetData(); 

DataView dv = new DataView(dt); 

dv.RowFilter = "A IS NOT NULL OR A IS NOT ''"; 

雖然上面似乎沒有工作。

回答

11

是否與.net < 3.5綁定?如果沒有,你可以使用linq來檢查列的狀態。

否則有一個Isnull(,)功能就像在T-SQL:

dv.RowFilter = "Isnull(a,'') <> ''"; 
6

我假設你需要檢索的所有記錄,其中在A列中的值既不是空也不是'

的正確expr是:

dv.RowFilter = "A IS NOT NULL AND A <> ''"; 

,並檢索上dv.ToTable()這樣篩選的記錄循環:

foreach (DataRow dr in dv.ToTable().Rows) 
    Console.WriteLine(dr["A"]); 

這應該工作......歡呼聲!

5

您可以添加

dv.RowFilter = "CONVERT(Isnull(a,''), System.String) <> ''"

如果列作爲ISNULL數的數據類型(「」)將返回數。對號碼<> 0進行評估會拋出異常。

+1

+1您的回答幫助我解決了異常情況。 – 2012-09-29 06:06:48