C#DataTable.Select()根据条件筛选数据问题
DataTable.Select()根据条件筛选数据
很多时候我们获取到一个表的时候需要根据表的包含的队列去筛选内容,一般来说可能想到的就是遍历整个表的内容进行条件筛选,但是这种方式增加了代码量且易出错,DataTable.Select()就可以解决这一问题。
DataTable.Select()重载
**Select();**获取所有 System.Data.DataRow 对象的数组;
**Select(string filterExpression);**按照主键顺序(如果没有主键,则按照添加顺序)获取与筛选条件相匹配的所有 System.Data.DataRow 对象的数组;
**Select(string filterExpression, string sort);**获取按照指定的排序顺序且与筛选条件相匹配的所有System.Data.DataRow 对象的数组;
**Select(string filterExpression,string sort, DataViewRowState record States);**获取与排序顺序中的筛选器以及指定的状态相匹配的所有。
举例
Select("Results = 'PASS' ");//筛选字段‘Results '为‘PASS'的所有数据
Select("Time>= 100 ");//筛选字段‘Time'大于等于100的所有数据
Select("Results = 'PASS' and Time>= 100 ");//筛选字段‘Results '为‘PASS'且字段‘Time'大于等于100的所有数据
Select("Results = 'PASS' or Time>= 100 ");//筛选字段‘Results '为‘PASS'或者字段‘Time'大于等于100的所有数据
Select("Results like '%NG_%' ");//筛选字段‘Results '字段中包含'NG_'字符串的所有数据
DataTable常用数据筛选方法
Computer
按条件筛选数据并对数据进行统计运算
dtData.Compute("Avg(身高)", "年龄 > 22 AND 姓名 LIKE '李%'");
Select
根据条件查询一行或多行数据
DataRow[] drs = dtData.Select("姓名 is NULL");
Find
根据DataTable的主键查找1行数据,只能查找主键字段
如果主键是多个字段,需要借助Object[]数组进行拼接
主键只有一个字段
DataRow dr = this.dt.Rows.Find("14109");
主键有多个字段
Object[] obj= new Object[]{268,"2001-7-1"};
DataRow dr = dt.Rows.Find(obj);
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341