DataTable.Select筛选过滤数据返回DataRow[]转为DataTable添加到DataSet
问题还原,如图所示,我们要筛选所有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;
}
筛选后的结果:

DataTable.Select筛选过滤数据返回DataRow[]转为DataTable添加到DataSet的更多相关文章
- SQL Server游标    C# DataTable.Select() 筛选数据    什么是SQL游标?  SQL Server数据类型转换方法   LinQ是什么?  SQL Server 分页方法汇总
		
SQL Server游标 转载自:http://www.cnblogs.com/knowledgesea/p/3699851.html. 什么是游标 结果集,结果集就是select查询之后返回的所 ...
 - C# DataTable.Select() 筛选数据
		
有时候我们需要对数据表进行筛选,微软为我们封装了一个公共方法, DataTable.Select(),其用法如下: Select() Select(string filterExpression) S ...
 - 关于DataTable.Select不到数据的一种解决方案
		
网上有很多说的,试过,都没用.自己研究了一下,解决方案如下: 建立dataview,用dv.rowfilter,就可以取到了,然后TOTABLE即可. 代码如下:(只看中间那几句即可) private ...
 - Swift - 使用闭包筛选过滤数据元素
		
通常筛选一个数组,通常会在代码的其它地方创建一个函数,然后为数组的每个元素调用它.但这样做会使代码分散在许多地方,不便于阅读.使用闭包就可以将相关代码片断放在一起,使结构逻辑更加清晰. 比如,筛选一个 ...
 - select筛选用户数据
 - DataTable.Select 处理关联表数据
		
DataSet.Clone 会拷贝表结构,关联关系也会拷贝, 用Select 筛选后ImportRow 导入新的DataTable,然后处理关联DataTable DataSet ds2 = dsS ...
 - vue遍历数据是对数据进行筛选 过滤 排序
		
使用computed 方法来过滤筛选数据;或者使用methods 方式来筛选过滤数据 <body> <div id="app"> <ul> &l ...
 - Datatable的查找和排序(Datatable.Select)
		
Datatable 是一种常用的数据结构.数据类型有点类似于数据库中的表结构.在没有使用优秀的orm框架前,大部分的数据库的数据都是先变为Datatable 然后再通过代码转换变成 object. ...
 - DataTable的筛选,过滤后绑定数据源的两种方法(DataTable的select和使用linq返回List集合)
		
一般数据处理使用DataTable的情况会很多,而我们很多时候会对得到的DataTable的数据进行筛选后绑定到Combobox.GridView.Repeat等控件中,现在分享一下两种DataTab ...
 
随机推荐
- [转载]Spark-Task not serializable错误解析
			
Spark-Task not serializable错误解析 2018年05月17日 15:33:03 沙拉控 阅读数:1509 在学习SparkStreaming的时候偶然出现的一个问题,先看 ...
 - VMware中Red Hat Enterprise Linux 7 配置桥接模式局域网
			
在VMware中将虚拟机的网络连接设置为桥接模式. 在Red Hat中,找到应用程序--杂项--网络连接. 修改以太网下面的网络连接,在IPV4设置中,将方法改为“手动”,添加地址,子网掩码,网管,D ...
 - Linux( Ubantu ) 的简单使用
			
1.Linux常用的快捷键 Ctrl + Alt+ T --打开终端 Ctrl + Shift + C --复制 Ctrl + Shift + V --粘贴 Ctrl + Shift + A --光标 ...
 - TXNLP 33-40
			
词向量: 回顾基于检索的问答系统 倒排表解决:坑爹的翻译...应该翻译成“反向索引” 常规的索引是文档到关键词的映射: 文档——>关键词但是这样检索关键词的时候很费力,要一个文档一个文档的遍历一 ...
 - Java 代码的精优化
			
一.避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,在精确计算或值比较的场景中可能会导致业务逻辑异常. 反例: // BigDecimal 反例 ...
 - tar:文件打包归档
			
造冰箱的大熊猫@cnblogs 2018/12/24 1.什么是tar 1.1.tar tar命令将指定的文件.文件夹打包(存储)为一个文件(归档文件,archive file).tar将被归档文件以 ...
 - confirm 弹出信息
			
if(confirm("真的要删除吗?")){ alert("点击了确认按钮"); } else{ alert("点击了取消按钮"); } ...
 - MessagePack Java Jackson Dataformat - 列表(List)的序列化和反序列化
			
在本测试代码中,我们定义了一个 POJO 类,名字为 MessageData,你可以访问下面的链接找到有关这个类的定义. https://github.com/cwiki-us-demo/serial ...
 - 【BZOJ4671】 异或图
			
Description 定义两个结点数相同的图 G1 与图 G2 的异或为一个新的图 G, 其中如果 (u, v) 在 G1 与 G2 中的出现次数之和为 1, 那么边 (u, v) 在 G 中, 否 ...
 - flask 第六篇 flask内置的session
			
Flask中的Session非常的奇怪,他会将你的SessionID存放在客户端的Cookie中,使用起来也非常的奇怪 1. Flask 中 session 是需要 secret_key 的 from ...