博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中 从本地DataTable中 查询符合条件的数据
阅读量:5248 次
发布时间:2019-06-14

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

 

 

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 +"'");

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

转载于:https://www.cnblogs.com/alanjl/archive/2013/04/30/3052013.html

你可能感兴趣的文章
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
前台freemark获取后台的值
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
Django 相关
查看>>
比较安全的获取站点更目录
查看>>
UVA11374 Airport Express
查看>>
读书汇总贴
查看>>
空间分析开源库GEOS
查看>>
RQNOJ八月赛
查看>>
前端各种mate积累
查看>>
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>
linux php编译安装
查看>>
name phone email正则表达式
查看>>
重置GNOME-TERMINAL
查看>>