ADO.NET 快速入门(十):过滤数据
来源:互联网 发布:spark大数据平台 编辑:程序博客网 时间:2024/06/06 00:48
我们有很多方法来过滤数据。一种是在数据库命令级别,利用 where 子句查询过滤数据。另一种是在数据填充到 DataSet 以后过滤数据。本篇讨论后者。
一旦数据填充到 DataSet,你可以使用 DataSet 的方法获取一个数据子集。
1、使用 Select 方法过滤
设想一下 DataSet 填充了 Customers 和 Orders 两个表。你可以使用 Select 方法返回一组行,为名叫 Kelly 的 Customers 过滤数据。
myRowArray = dsCustomers.Select("ContactName like 'Kelly%'");
注意,这个语句和 ANSI-SQL 类似。从本质上讲,他们是 ANSI-SQL 的子集,下列区别:因为 DataSet 可以保存多张关联表,所以过滤器也可以过滤这些关联表。下例中,使用 Child 关键字过滤 Orders 和 Customers。
myRowArray = dsCustomers.Select("ContactName like 'Kelly%' AND [child].OrderDate = '7/26/68'");
Select 函数返回行数组,你可以通过 foreach 语句迭代这个数组。
2、使用 DataViews 过滤和排序
使用 DataView 对象,你可以在 DataSet 上设置多个过滤器,建立对他们的绑定,等等。DataView 可以使用 Select 中同样的查询语法规则过滤数据。但是过滤器是动态的。如果添加一行数据,并且满足过滤要求,那么对 View 可见。Views 可以排序和过滤。过滤器包括 Data 过滤器和 Version 过滤器(Current、New、Modified、Deleted)。可以通过 DataSet 内部的 DataTable 创建一个DataView 对象。
DataView myDataView = new DataView(myDataSet.Tables["Customers"]);
你可以使用上例中 Select 方法同样的查询过滤语法,在 RowFilter 属性上设置一个过滤器。设置排序,使用逗号分隔的排序列,其次是 ASC(默认和可选)或者 DESC 用于升序和降序。
// 基于 CustomerID 列排序 myDataView.Sort = "CustomerID"; // 筛选 CustomerID 为 ALFKI 的行 myDataView.RowFilter = "CustomerID = 'ALFKI'";
你也可以基于行的状态进行过滤(Deleted,New,等等)。下例演示了过滤 Deleted 状态行。
myDataView.RowStateFilter = DataViewRowState.Deleted;
0 0
- ADO.NET 快速入门(十):过滤数据
- ADO.NET 快速入门(九):使用关系型数据
- ADO.NET 快速入门(一):ADO.NET 概述
- ADO.NET 快速入门(一):ADO.NET 概述
- ADO.NET 快速入门(十二):从 SQL Server 生成 XML 数据
- ADO.NET 快速入门(十三):使用 OLE DB 检索数据
- ADO.NET 快速入门(十四):使用 SQL Server 检索数据
- ADO.NET 快速入门(十五):ADO 应用转换为 ADO.NET
- ADO.NET 2.0 快速入门(asp.net)
- ADO.NET 快速入门(二):执行命令
- ADO.NET 快速入门(四):从数据库填充 DataSet
- ADO.NET 快速入门(五):从 DataSet 更新数据库
- ADO.NET 快速入门(六):读写 XML
- ADO.NET 快速入门(七):使用数据库事务
- ADO.NET 快速入门(八):处理 Errors
- ADO.NET 快速入门(十一):连接池
- ADO.NET 快速入门(二):执行命令
- ado.net 实体框架快速入门学习
- Vmware安装Centos NAT方式设置静态IP 并可以上网
- jfreechart 时间序列图
- 背包dp模板
- [IOS APP]文学之美
- POJ 1201 Intervals <差分约束系统 + SPFA / 贪心 + 树状数组>
- ADO.NET 快速入门(十):过滤数据
- retrofit2 上传多张图片
- 别人的网络编程
- ubuntu 16.04 中部分软件无法联网的解决方法
- BOM/DOM各种位置及大小
- 初识jQuery
- 进程和线程的区别
- java面向对象三大特征 — 封装
- leetcode 4 Median of Two Sorted Arrays(二分+思路)