转:DataTable的一些特殊用法:Select
当你从数据库里取出一些数据,然后要对数据进行整合,你很容易就会想到:
1DataTable dt = new DataTable();//假设dt是由"SELECT C1,C2,C3 FROM T1"查询出来的结果
2for (int i = 0; i < dt.Rows.Count; i++)
3{
4 if (dt.Rows[i]["C1"].ToString() == "abc")//查询条件
5 {
6 //进行操作
7 }
8}
但这种做法用一两次还好说,用多了就累了。那有没有更好的方法呢?记得LinQ是可以直接对DataTable进行查询操作的,那在.Net Framework 2.0里,有没有类似的方法呢?答案是肯定的,就是dt.Select(),上面的操作可以改成这样:
1DataRow[] drArr = dt.Select("C1='abc'");//查询
还可以这样操作:
1DataRow[] drArr = dt.Select("C1 LIKE 'abc%'");//模糊查询
2DataRow[] drArr = dt.Select("'abc' LIKE C1 + '%'", "C2 DESC");//另一种模糊查询的方法
3DataRow[] drArr = dt.Select("C1='abc'", "C2 DESC");//排序
问题又来了,如果要把DataRow赋值给新的DataTable,怎么赋值呢?你可能会想到:
1DataTable dtNew = dt.Clone();
2for (int i = 0; i < drArr.Length; i++)
3{
4 dtNew.Rows.Add(drArr[i]);
5}
但这样程序就会出错,说该DataRow是属于其他DataTable的,那要怎么做呢?很简单,这样就可以解决了:
1DataTable dtNew = dt.Clone();
2for (int i = 0; i < drArr.Length; i++)
3{
4 dtNew.ImportRow(drArr[i]);
5}
这样就完成了。
转:DataTable的一些特殊用法:Select的更多相关文章
- DataTable的一些特殊用法:Select
当你从数据库里取出一些数据,然后要对数据进行整合,你很容易就会想到: 1DataTable dt = new DataTable();//假设dt是由"SELECT C1,C2,C3 FRO ...
- C# DataTable的詳細用法 - hcw_peter的专栏 - 博客频道 - CSDN
C# DataTable的詳細用法 - hcw_peter的专栏 - 博客频道 - CSDN.NET 在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够 ...
- jquery datatable 多行(单行)选择(select),行获取/行删除
jquery datatable 多行(单行)选择(select),行获取/行删除 代码展示 // 示例数据源 var dataSet = [ ['Tasman','Internet Explorer ...
- C# DataSet与DataTable的区别和用法 ---转载
C# DataSet与DataTable的区别和用法 转载:https://www.cnblogs.com/liuyi-li/p/6340411.html DataSet是数据集,DataTable是 ...
- C# DataTable的詳細用法
转载别人的转载,原作者都不知道了 在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一 ...
- C# DataTable的詳細用法 (转)
在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.DataTable简 ...
- list,arraylist,哈希表,字典,datatable的selct等等用法
例子一.获取到list中的最大值,极其索引 List<int> ls = new List<int>(); ls.Add(1); l ...
- C# DataSet与DataTable的区别和用法
DataSet是数据集,DataTable是数据表,DataSet存储多个DataTable.DataSet和DataTable像是专门存储数据的一个容器,在你查询数据库得到一些结果时可以存在里面. ...
- DataTable的子查询--DataTable.Select()
由于需要,在sql查询获得结果集之后,又需要对该结果再进行筛选一次,若重新从sql中查询会浪费资源,因此特地去查阅了一些资料,学会了用DataTable进行子查询. 在.Net Framework 2 ...
随机推荐
- ScrollView中添加ListView
<p>.要点一:去除ListView的scrollBar,添加ScrollView的scrollBar:</p> <ScrollView android:layout_w ...
- HDU4532(组合DP)
题目:安排座位 解析:http://www.douban.com/note/269136472/ #include <iostream> #include <string.h> ...
- Hessian和Burlap入门教程
一.简介 Hessian和Burlap是由Caucho Technology提供的基于HTTP协议的轻量级远程服务解决方案.他们都致力于借助尽可能简单那的API和通信协议来简化Web服务. He ...
- ZOJ3829---模拟,贪心
这是2014年ACM亚洲区预赛牡丹江现场赛的一道题,铜牌题,可惜当时一路WA到死... 只有乘法的后缀表达式的特点有两个:(1)数字的数量一定大于‘*’的数量(2)最后一位一定是‘*’: 数字比*多的 ...
- awk笔记1
grep: 文本过滤器 grep 'pattern' input_file ... sed:流编辑器 awk: 报告生成器 格式化以后,显示 AWK a.k.a. Aho, Kernigh ...
- JQuery DOM 有关代码练习
//累加你选择的个数 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...
- sleep()函数的的意义
===============WINDOWS平台下:====================== 关于VOID Sleep(DWORD dwMilliseconds);函数,许多人都觉得,它是告诉系统 ...
- Bootstrap在线编辑器简单分享
Bootstrap 已经使响应式网站开发变得简单很多. 但是如果你不必手动写全部代码,事情会如何呢? 如果你可以自由地选择你想要使用的Bootstrap 组件.并可以把它们拖拽到画布中,事情会如何呢? ...
- Oracle 学习笔记 19 -- 触发器和包浅析(PL/SQL)
触发器是存放在数据库中的一种特殊类型的子程序.不能被用户直接调用,而是当特定事件或操作发生时由系统自己主动 调用执行.触发器不能接受參数.所以执行触发器就叫做触发或点火.Oracle事件指的是数据库的 ...
- c++编程碰到的奇怪问题与解决
今天写一个工具,调试过程中莫名其妙崩溃,类某些成员变量指针很奇怪,为0x00003001.最后检查的结果居然是这样的: 文件class1.h: class1 { int a; int b; } 文件: ...