博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataTable的一些特殊用法:Select
阅读量:5280 次
发布时间:2019-06-14

本文共 1033 字,大约阅读时间需要 3 分钟。

当你从数据库里取出一些数据,然后要对数据进行整合,你很容易就会想到:

1
DataTable dt 
=
 
new
 DataTable();
//
假设dt是由"SELECT C1,C2,C3 FROM T1"查询出来的结果

2
for
 (
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(),上面的操作可以改成这样:

1
DataRow[] drArr 
=
 dt.Select(
"
C1='abc'
"
);
//
查询

还可以这样操作:

1
DataRow[] drArr 
=
 dt.Select(
"
C1 LIKE 'abc%'
"
);
//
模糊查询

2
DataRow[] drArr 
=
 dt.Select(
"
'abc' LIKE C1 + '%'
"
"
C2 DESC
"
);
//
另一种模糊查询的方法

3
DataRow[] drArr 
=
 dt.Select(
"
C1='abc'
"
"
C2 DESC
"
);
//
排序

问题又来了,如果要把DataRow赋值给新的DataTable,怎么赋值呢?你可能会想到:

1
DataTable dtNew 
=
 dt.Clone();
2
for
 (
int
 i 
=
 
0
; i 
<
 drArr.Length; i
++
)
3
{

4    dtNew.Rows.Add(drArr[i]);
5}

但这样程序就会出错,说该DataRow是属于其他DataTable的,那要怎么做呢?很简单,这样就可以解决了:

1
DataTable dtNew 
=
 dt.Clone();
2
for
 (
int
 i 
=
 
0
; i 
<
 drArr.Length; i
++
)
3
{

4    dtNew.ImportRow(drArr[i]);
5}

这样就完成了。 

转载于:https://www.cnblogs.com/EDSON/archive/2013/06/06/3120696.html

你可能感兴趣的文章
庖丁解“学生信息管理系统”
查看>>
Pyltp使用
查看>>
其他ip无法访问Yii的gii,配置ip就可以
查看>>
js创建对象
查看>>
有状态EJBBean和无状态的EJBBean
查看>>
使用json格式输出
查看>>
border-image属性在chrome中的不同效果
查看>>
php做的一个简易爬虫
查看>>
x的x次幂的值为10,求x的近似值
查看>>
hdu-5009-Paint Pearls-dp
查看>>
Codeforces Round #246 (Div. 2)
查看>>
内存泄漏调查
查看>>
jquery获取html元素的绝对位置和相对位置的方法
查看>>
谈谈spring
查看>>
ios中webservice报文的拼接
查看>>
Power BI 报告的评论服务支持移动设备
查看>>
MySQL 5.7社区版安装实践
查看>>
vue-auto-focus: 控制自动聚焦行为的 vue 指令
查看>>
docker入门学习(四) 安装nginx及配置
查看>>
有人物联网数传终端设备在智慧电力和公共事业中的应用
查看>>