咱們有不少方法來過濾數據。一種是在數據庫命令級別,利用 where 子句查詢過濾數據。另外一種是在數據填充到 DataSet 之後過濾數據。本篇討論後者。
一、使用 Select 方法過濾數據庫
設想一下 DataSet 填充了 Customers 和 Orders 兩個表。你可使用 Select 方法返回一組行,爲名叫 Kelly 的 Customers 過濾數據。數組
myRowArray = dsCustomers.Select("ContactName like 'Kelly%'");
注意,這個語句和 ANSI-SQL 相似。從本質上講,他們是 ANSI-SQL 的子集,下列區別:由於 DataSet 能夠保存多張關聯表,因此過濾器也能夠過濾這些關聯表。下例中,使用 Child 關鍵字過濾 Orders 和 Customers。asp.net
myRowArray = dsCustomers.Select("ContactName like 'Kelly%' AND [child].OrderDate = '7/26/68'");
Select 函數返回行數組,你能夠經過 foreach 語句迭代這個數組。函數
二、使用 DataViews 過濾和排序ui
DataView myDataView = new DataView(myDataSet.Tables["Customers"]);
你可使用上例中 Select 方法一樣的查詢過濾語法,在 RowFilter 屬性上設置一個過濾器。設置排序,使用逗號分隔的排序列,其次是 ASC(默認和可選)或者 DESC 用於升序和降序。spa
// 基於 CustomerID 列排序 myDataView.Sort = "CustomerID"; // 篩選 CustomerID 爲 ALFKI 的行 myDataView.RowFilter = "CustomerID = 'ALFKI'";
myDataView.RowStateFilter = DataViewRowState.Deleted;