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)"; //錯誤