ADO.NET 为我们提供了一些查询内存中数据表的API,利用这些API我们可以对内存中的DataTable进行类似于查询数据库查询的操作。

1.查询数据并对其进行排序

  当我们想要访问DataTable中特定的行时,可以根据这个表的一列或者多列作为搜索条件来访问这些数据行。

1.1 按照主键查找数据行

  和数据库中的表类似,每个DataTable都包括一个可选的主键定义,也就是一组被指定给该表PrimaryKey成员的DataColumn对象。主键可以是来自某一列的唯一值或者是多列组成的键,根据主键找到某一行可以使用 Rows.Find() 方法:

1 DataRow result = someTable.Rows.Find(usePrimaryKey);

1.2 使用搜索条件筛选行

 使用主键进行搜索可以快速的找到对应的单行数据,但是如果想要搜索多列符合条件的数据行时,我们可以使用DataTable类的Select()方法,只需要向该方法传递一个包含搜索条件的字符串:

1 DataRow[] resultRows = someTable.Select(filterCriteria);

搜索条件的字符串类似于T-SQL构建的一个布尔语句,如果想查看筛选表达式的完整说明,可以参考MSDN:DataColumn.Expression 属性。

1.3 对搜索结果进行排序

  默认的情况下,DataTable.Select 方法返回的DataRow对象的顺序就是这些对象被添加进表中的顺序。我们可以像SQL语句那样在查询条件中添加命令来表示排序规则:

1 DataRow[] resultRows = someTable.Select(filterCriteria,sortRules);

1.4 查询时区分大小写

  默认情况下,DataTable.Select 方法是不区分大小写的,如果需要对筛选条件进行大小写区分,可以设置表的CaseSensitive属性即可:

1 someTable.CaseSensitive = true;

2.使用表达式列

  DataTable同时也支持一个非常重要的功能:表达式列,就是可以根据其他行列中的数据来现实计算结果的字段。类似于T-SQL中提供的函数,我们可以根据现有行列的数据来计算出需要值。

  向DataTable中添加表达式列,可以创建一个标准的DataColumn对象,填充ColumnName和DataType属性,然后指定一个字符串表达式,对Expression属性执行自定义计算:

1             DataColumn orderTotal = new System.Data.DataColumn();
2             orderTotal.ColumnName = "Total";
3             orderTotal.DataType = typeof(decimal);
4             orderTotal.Expression = "subtotal + ISNULL(TAX,0)";
5             someTable.Columns.Add(orderTotal);

猛击下载:示例程序

参考资料:

《ADO.NET 4 Step by Setp》

DataColumn.Expression 属性

转载于:https://www.cnblogs.com/IPrograming/archive/2012/11/23/ADO_NET_4.html

ADO.NET编程(4)根据条件查询DataTable的值相关推荐

  1. datatable筛选条件_DataTables 多条件查询、多列搜索

    在使用DataTables展示数据,通常有两种 根据条件获取最终的数据显示 在已经显示的数据中过滤 第二种,DataTables 本身提供了过滤插件,默认条件下,在表格的右上角会有一个搜索框,可以对表 ...

  2. 关于在DataTable中执行DataTable.Select(条件)返回DataTable的解决方法

    在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他 ...

  3. 学习ASP.NET Core Razor 编程系列九——增加查询功能

    原文:学习ASP.NET Core Razor 编程系列九--增加查询功能 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.N ...

  4. SQLserver多条件查询

    SQLserver多条件查询 根据前台用户的选择,去查询数据库. 问题是你不知道用户是否进行了选择,所有选项都可选可不选的,这就需要多条件判断去查询后台的数据. 首先,把它放到前台肯定不适合,参数个数 ...

  5. Linq查询datatable的记录集合

    通过linq查询datatable数据集合满足条件的数据集 1.首先定义查询字段的变量,比方深度 string strDepth=查询深度的值: var dataRows = from datarow ...

  6. 【.Net】C# 将Access中时间段条件查询的数据添加到ListView中

    一.让ListView控件显示表头的方法 在窗体中添加ListView 空间,其属性中设置:View属性设置为:Detail,Columns集合中添加表头中的文字. 二.利用代码给ListView添加 ...

  7. DJango 多条件查询结果分页

    为什么80%的码农都做不了架构师?>>>    在学习Django中,练手做了个项目,在实际编程当中发现了N多个坑,现在记录下心得体会,方便以后查询,本人Models只使用了一张表, ...

  8. MyBatis中的多条件查询

    mybatis的多条件查询是后台开发中常见的一种需求,下面直接展示需要实现的效果图: 如上图,我们需要根据四个条件来查询简历信息,而且需求允许某些条件为空,还有一个就是时间段的查询,如果我们使用的常规 ...

  9. asp mysql查询_asp的 条件查询

    ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前 原文:ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前 背景 ...

最新文章

  1. 数据库的数据在硬盘上吗
  2. mysql8.0.15远程登陆权限,MySQL8.0给root用户赋予远程连接权限
  3. 两点补充——CSS3新属性以及弹性布局
  4. gradle 查看依赖类库版本_Android studio中查看依赖的第三方库的历史版本和最新版本...
  5. 存储器空间或者桌面堆_向爱因斯坦学习桌面管理之道
  6. java-rpc框架
  7. Python基础案例练习:掷骰子小游戏
  8. 如何切底卸载Oracle
  9. Mysql 日志管理详解
  10. No toolchains found in the NDK toolchains folder for ABI with prefix: mips64
  11. 基恩士PLC实例笔记①--立项及编程
  12. Google Chrome Frame 谷歌浏览器框架
  13. [软件应用]常用软件名录
  14. python 结巴分词学习
  15. 在MySQL中生成随机经度和纬度
  16. Python爬取网易云音乐评论
  17. 0-50A-400A霍尔电流传感器应用案例分享
  18. Hive应用:选取分隔符
  19. 笛卡尔积、除、(外)连接等重要关系代数求解方法 概述
  20. HBase的高表和宽表

热门文章

  1. JavaScript 资源列表
  2. Android 偶见花屏 bug,无法手动重现
  3. [转载] 蓝胡子国王的金钥匙
  4. 网站锁定php文件命令,PHP文件的锁定机制
  5. JavaScript DOM操作总结
  6. C#注册类方法到Lua
  7. jQuery Mobile 高级设计模板
  8. 8月28日服务器例行维护公告,天涯明月刀8月28日更新了什么-8月28日更新内容介绍...
  9. 零基础轻松学mysql_零基础轻松学MySQL 5.7
  10. datagridview输入数据格式化_第五节,输入输出函数