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 ...
随机推荐
- SQL2000的系统表sysproperties在SQL2005中 无效的 问题
有两种解决办法 方法一.是我在网上找的:将原来的sysproperties改成sys.extended_properties并且对应关系如下 sys.extended_properties left ...
- [MSP430] 对MSP430单片机__delay_cycles精确延时的说明及改正
在这里, 我来讨论一下关于MSP430单片机使用__delay_cycles延时的问题. IAR for MSP430编译器提供了一个编译器内联的精确延时函数(并非真正的 函数)以提供用户精确延时使用 ...
- JAVA中如何将一个json形式的字符串转为json对象
import java.io.*; import org.json.*; public class Demo { public static void main(String[] args) thro ...
- Innodb中自增长值的列
Innodb中,自增长值的列必须是索引,同时必须是索引的第一个列.如果不是第一个列,数据库会报出异常 mysql> create table t_inc01( -> a int auto_ ...
- c# 笔试题及参考答案大全
http://blog.csdn.net/smileberry1/article/details/3958670
- 使用 vue-cli 实现组件之间数据交换
1 使用脚手架工具用 webpack 模板初始化项目,用 webstorm 打开项目.src 目录下是要编写的源文件. main.js 文件 是主入口文件, 在es6语法中,:function(){} ...
- SQLServer中进行sql除法运算结果为小数时显示0的解决方案
转自:http://blog.sina.com.cn/s/blog_8020e41101019k7t.html SELECT field1/field2 FROM TB; 当 field1的数值 &g ...
- ubuntu 编译android 源码笔记
已经验证,可以编译成功.过程中会碰到一些编译错误,安装好依赖环境,可以解决. 1.splite压缩包的合并,解压缩,md5验证 http://pan.baidu.com/s/1bnG1NtX kitk ...
- NGINX宏观手记(变量|配置)
前言 任何一个工具都有它的灵魂所在,作为一个PHP程序员,我们可能仅仅使用了它的一小部分,这篇文章让你更加了解Nginx,本章大多都是总结.翻译.整理 ,希望你可以知道nginx不仅仅是PHP的附属品 ...
- vss整合配置连接到Myeclipse中以及中文配置
配置过很久后 再次配置进行记录以免后续备用 1.下载vss插件和安装vss插件 org.vssplugin_1.6.2 解压到myeclipse 安装路径文件夹C:\MyEclipse 8.5\dro ...