若要形成 RowFilter 值,請指定列的名稱,後跟一個運算符和一個要篩選的值。 該值必須用引號括起來。
//數據集中這列為null或者“”都過濾掉 pds.Tables[0].DefaultView.RowFilter = "字段名='' or 字段名 is null"; //pds.Tables[0].DefaultView.RowFilter = "YHZHBH='00'"; //綁定 this.grid1.DataSource = pds.Tables[0].DefaultView; DataTable dt = DataView.ToTable();正確的。 DataTable dt = DataView.Table; 獲取的是原來構造DataView的那個原表(沒有過濾之前的那個表)。
重點在於DataView是DateTable相關聯 的一個視圖而已,無論你如何使用RowFilter,DataView雖然被改變,但 DateTable數據不會減少,所以你不要幻想連續使用多個RowFilter 來得到疊加過濾的效果,一個DataView只支持一個RowFilter,你只能使用 not ,and 來連接多個過濾條件。
不過RowFilter不支持不等於(<>、!=、not like),不過如果只是單純的對確定的字符串操作,可以用in和not in,數據庫查詢語句則不行。
eg:
dt.DefaultView.RowFilter = "Name in ('zhang')"; dt.DefaultView.RowFilter = "Name not in ('zhang')"; dt.DefaultView.RowFilter = "Name in (select Name from StudentInfo)"; //錯誤
若要形成 RowFilter 值,請指定列的名稱,後跟一個運算符和一個要篩選的值。該值必須用引號括起來。
例如:
"LastName = 'Smith'"
若要只返回那些具有空值的列,請使用以下表達式:
"Isnull(Col1,'Null Column') = 'Null Column'"
本文URL:http://www.bianceng.cn/Programming/csharp/201410/45574.htm