ADO.NET编程(4)根据条件查询DataTable的值
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的值相关推荐
- datatable筛选条件_DataTables 多条件查询、多列搜索
在使用DataTables展示数据,通常有两种 根据条件获取最终的数据显示 在已经显示的数据中过滤 第二种,DataTables 本身提供了过滤插件,默认条件下,在表格的右上角会有一个搜索框,可以对表 ...
- 关于在DataTable中执行DataTable.Select(条件)返回DataTable的解决方法
在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他 ...
- 学习ASP.NET Core Razor 编程系列九——增加查询功能
原文:学习ASP.NET Core Razor 编程系列九--增加查询功能 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.N ...
- SQLserver多条件查询
SQLserver多条件查询 根据前台用户的选择,去查询数据库. 问题是你不知道用户是否进行了选择,所有选项都可选可不选的,这就需要多条件判断去查询后台的数据. 首先,把它放到前台肯定不适合,参数个数 ...
- Linq查询datatable的记录集合
通过linq查询datatable数据集合满足条件的数据集 1.首先定义查询字段的变量,比方深度 string strDepth=查询深度的值: var dataRows = from datarow ...
- 【.Net】C# 将Access中时间段条件查询的数据添加到ListView中
一.让ListView控件显示表头的方法 在窗体中添加ListView 空间,其属性中设置:View属性设置为:Detail,Columns集合中添加表头中的文字. 二.利用代码给ListView添加 ...
- DJango 多条件查询结果分页
为什么80%的码农都做不了架构师?>>> 在学习Django中,练手做了个项目,在实际编程当中发现了N多个坑,现在记录下心得体会,方便以后查询,本人Models只使用了一张表, ...
- MyBatis中的多条件查询
mybatis的多条件查询是后台开发中常见的一种需求,下面直接展示需要实现的效果图: 如上图,我们需要根据四个条件来查询简历信息,而且需求允许某些条件为空,还有一个就是时间段的查询,如果我们使用的常规 ...
- asp mysql查询_asp的 条件查询
ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前 原文:ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前 背景 ...
最新文章
- 数据库的数据在硬盘上吗
- mysql8.0.15远程登陆权限,MySQL8.0给root用户赋予远程连接权限
- 两点补充——CSS3新属性以及弹性布局
- gradle 查看依赖类库版本_Android studio中查看依赖的第三方库的历史版本和最新版本...
- 存储器空间或者桌面堆_向爱因斯坦学习桌面管理之道
- java-rpc框架
- Python基础案例练习:掷骰子小游戏
- 如何切底卸载Oracle
- Mysql 日志管理详解
- No toolchains found in the NDK toolchains folder for ABI with prefix: mips64
- 基恩士PLC实例笔记①--立项及编程
- Google Chrome Frame 谷歌浏览器框架
- [软件应用]常用软件名录
- python 结巴分词学习
- 在MySQL中生成随机经度和纬度
- Python爬取网易云音乐评论
- 0-50A-400A霍尔电流传感器应用案例分享
- Hive应用:选取分隔符
- 笛卡尔积、除、(外)连接等重要关系代数求解方法 概述
- HBase的高表和宽表
热门文章
- JavaScript 资源列表
- Android 偶见花屏 bug,无法手动重现
- [转载] 蓝胡子国王的金钥匙
- 网站锁定php文件命令,PHP文件的锁定机制
- JavaScript DOM操作总结
- C#注册类方法到Lua
- jQuery Mobile 高级设计模板
- 8月28日服务器例行维护公告,天涯明月刀8月28日更新了什么-8月28日更新内容介绍...
- 零基础轻松学mysql_零基础轻松学MySQL 5.7
- datagridview输入数据格式化_第五节,输入输出函数