问题还原,如图所示,我们要筛选所有SHDP 为北京翠微KR的数据。

1、 筛选DataTable微软为我们提供了一个方法DataTable.Select(),其用法如下:

1)  Select()——获取所有 System.Data.DataRow 对象的数组;
2)  Select(string filterExpression)——按照主键顺序(如果没有主键,则按照添加顺序)获取与筛选条件相匹配的所有 System.Data.DataRow 对象的数组;
3)  Select(string filterExpression, string sort)——获取按照指定的排序顺序且与筛选条件相匹配的所有System.Data.DataRow 对象的数组;
4)  Select(string filterExpression, string sort, DataViewRowState recordStates)——获取与排序顺序中的筛选器以及指定的状态相匹配的所有。
举例说明:
有一个用户表,名称为 dtUsers,有id、姓名name、性别sex、年龄age
1.筛选所有的用户  
DataRow[] drs1 =dtUsers.Select();
2.筛选所有性别为男的用户
DataRow[] drs2 =dtUsers.Select("sex = '男' ");
3.筛选所有性别为男且年龄在18岁以上的用户
DataRow[] drs3 =dtUsers.Select("sex = '男' and age >= 18");
4.筛选所有性别为男或者年龄在18岁以上的用户
DataRow[] drs4 =dtUsers.Select("sex = '男' or age >= 18");
5.筛选所有姓“夏”的用户
DataRow[] drs5 =dtUsers.Select("name like '夏%'");
6.筛选所有18岁以上的用户且按从大到小的顺序排序
DataRow[] drs5 =dtUsers.Select("age >=18","age desc");

代码如下:

  //查询结果数据集
DataSet ds = bll.GetDPCCSBList(pageNum, pageSize, whereStr, out totalRecord);
//通过Select查询返回DataRow[]
DataRow[] rows = ds.Tables[].Select($"SHDPDM='{jobnum}'");
//DataRow[]转为DataTable
DataTable dtResult = ToDataTable(rows);
//将Table添加到DataSet
DataSet dsResult = new DataSet();
dsResult.Tables.Add(dtResult);
DataRow[]转为dataTable
             /// <summary>
/// DataRow[]转为dataTable
/// </summary>
/// <param name="rows"></param>
/// <returns></returns>
public DataTable ToDataTable(DataRow[] rows)
{
if (rows == null || rows.Length == ) return null;
DataTable tmp = rows[].Table.Clone(); // 复制DataRow的表结构
foreach (DataRow row in rows)
tmp.Rows.Add(row.ItemArray); // 将DataRow添加到DataTable中
return tmp;
}

筛选后的结果:

最新文章

  1. C和指针 第十五章 文件I/O
  2. 动态规划VS分治策略
  3. SQL 用户定义表类型,在存储过程里使用表类型,表参数作参数
  4. Alpha版本十天冲刺——Day 8
  5. xss如何加载远程js的一些tips
  6. Java程序员的日常 —— 工作一天的收获
  7. python 学习之电脑的发展历史
  8. 每天一道LeetCode--434. Number of Segments in a String
  9. Hive表分区
  10. 一个公网地址部署LVS/DR模式
  11. UVA_303_Pipe_(计算几何基础)
  12. ASP.NET MVC学习系列 WebAPI初探
  13. 给ecshop后台增加管理功能页面
  14. MySQL当您插入列无效的数据插入
  15. defer 与 async
  16. Android非常实用的开源项目框架
  17. 性能测试工具 - Apache JMeter (安装)
  18. Count(*), Count(1) 和Count(字段)的区别
  19. POJ 3264 线段树入门解题报告
  20. vue中生成二维码

热门文章

  1. spring boot 导出 jar 配置文件的问题
  2. (七)zabbix监控nginx
  3. LOAD DATA INFILE &amp; mysqlimport
  4. mybatis使用@Insert @SelectKey 执行插入语句时获得主键自增长值(转)
  5. 常见的SQL编写和优化
  6. 强制数据类型转换之Number类型
  7. eclipse简单构建maven工程
  8. jquery undelegate()方法 语法
  9. 支持快应用的http网络库-flyio
  10. 数据分析师面经一(bk)