首页 > 其他 > 详细

DataTable中的select()用法(转)

时间:2021-04-06 01:07:49      阅读:43      评论:0      收藏:0      [点我收藏+]

https://blog.csdn.net/txs0898/article/details/81980050

1.在DataTable中执行DataTable.Select("条件")返回DataTable; 

 

// <summary> 

// 执行DataTable中的查询返回新的DataTable 

// </summary> 

// dt 是源数据DataTable 

// condition 是查询条件 

 

DataTable newdt = new DataTable(); 

newdt = dt.Clone(); // 克隆dt 的结构,包括所有 dt 架构和约束,并无数据; 

DataRow[] rows = dt.Select(conditions); // 从dt 中查询符合条件的记录; 

foreach (DataRow row in rows)  // 将查询的结果添加到dt中; 

       newdt.Rows.Add(row.ItemArray); 

 

有网友说也可以这样:(大家可以试试) 

 

DataTable newdt = new DataTable(); 

newdt=dt.Clone(); 

DataRow[] dr = dt.Select(condition); 

for(int i=0;i<dr.Length;i++) 

newdt.ImportRow((DataRow)dr[i]); 

 

2.关于DataTable.Select(); 

 

Select方法:   

  Select();//全部查出来   

  Select(过滤条件);//根据过滤条件进行过滤,如Select("columnname1   like   ‘%xx%‘");   

  Select(过滤条件,排序字段);//过滤,并排序,如Select("columnname1   like   ‘%xx%‘",columnname2); 

 

完成一个查询,返回一个DataTable后,很多时候都想在查询结果中继续搜索。这时可以使用DataTable.Select方法对结果进行再查询。 

Select方法有4个重载,我们经常用到的就是DataTable.Select(String) ; 

 

下面就说说带一个参数的DataTable.Select(String): 

这个String的参数是查询的限定式。相当于SQL查询语言中的WHERE语句(不含WHERE),其语法符合SQL语言语法。 (网友的说法)我觉得就是类似sql的语法而已。 

 

不过我试了试,不支持BETWEEN AND,举个成功的例子: 

 

//FromTime 和ToTime 是两个DateTime类型的变量;occurTime是dTable里面的列名; 

 

DataRow[] datarows = dTable.Select("occurTime >= ‘" + FromTime + "‘ and occurTime <= ‘" + ToTime+"‘"); 

 

DataTable.Select()方法里面支持简单的过滤和排序,不支持复杂的条件过滤和排序。里面的字符串必须是列名和数据,以及>,<,=,<>等关系运算符。举几个例子: 

 

DataRow[]   row   =   Detailtb.Select("WZMC=‘"+MaterialName+"‘ and   CZ=‘"+MaterialTexture+"   and   GG=‘"+MaterialSpecs+"‘");    

 

DataTable.Select("City Like ‘B%‘"); 

 

DataTable.Select("name=‘" + a +"‘"); 

 

一定要注意单引号的问题;我之前就是把变量用双引号括起来了,一直出错,后来在网上查,发现要先有双引号,再用单引号;即‘“变量”’;

DataTable中的select()用法(转)

原文:https://www.cnblogs.com/sunny3158/p/14619300.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!