C# DataTable.Select()根據(jù)條件篩選數(shù)據(jù)問題
DataTable.Select()根據(jù)條件篩選數(shù)據(jù)
很多時候我們獲取到一個表的時候需要根據(jù)表的包含的隊列去篩選內容,一般來說可能想到的就是遍歷整個表的內容進行條件篩選,但是這種方式增加了代碼量且易出錯,DataTable.Select()就可以解決這一問題。
DataTable.Select()重載
**Select();**獲取所有 System.Data.DataRow 對象的數(shù)組;
**Select(string filterExpression);**按照主鍵順序(如果沒有主鍵,則按照添加順序)獲取與篩選條件相匹配的所有 System.Data.DataRow 對象的數(shù)組;
**Select(string filterExpression, string sort);**獲取按照指定的排序順序且與篩選條件相匹配的所有System.Data.DataRow 對象的數(shù)組;
**Select(string filterExpression,string sort, DataViewRowState record States);**獲取與排序順序中的篩選器以及指定的狀態(tài)相匹配的所有。
舉例
Select("Results = 'PASS' ");//篩選字段‘Results '為‘PASS'的所有數(shù)據(jù) Select("Time>= 100 ");//篩選字段‘Time'大于等于100的所有數(shù)據(jù) Select("Results = 'PASS' and Time>= 100 ");//篩選字段‘Results '為‘PASS'且字段‘Time'大于等于100的所有數(shù)據(jù) Select("Results = 'PASS' or Time>= 100 ");//篩選字段‘Results '為‘PASS'或者字段‘Time'大于等于100的所有數(shù)據(jù) Select("Results like '%NG_%' ");//篩選字段‘Results '字段中包含'NG_'字符串的所有數(shù)據(jù)
DataTable常用數(shù)據(jù)篩選方法
Computer
按條件篩選數(shù)據(jù)并對數(shù)據(jù)進行統(tǒng)計運算
dtData.Compute("Avg(身高)", "年齡 > 22 AND 姓名 LIKE '李%'");
Select
根據(jù)條件查詢一行或多行數(shù)據(jù)
DataRow[] drs = dtData.Select("姓名 is NULL");
Find
根據(jù)DataTable的主鍵查找1行數(shù)據(jù),只能查找主鍵字段
如果主鍵是多個字段,需要借助Object[]數(shù)組進行拼接
主鍵只有一個字段
DataRow dr = this.dt.Rows.Find("14109");
主鍵有多個字段
Object[] obj= new Object[]{268,"2001-7-1"}; DataRow dr = dt.Rows.Find(obj);
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
C#中的DataSet、string、DataTable、對象轉換成Json的實現(xiàn)代碼
這篇文章主要介紹了C#中的DataSet、string、DataTable、對象轉換成Json的實現(xiàn)代碼,需要的朋友可以參考下2014-09-09