C#中 从本地DataTable中 查询符合条件的数据
2013-04-30 16:15
2121 查看
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 +"'");
一定要注意单引号的问题;我之前就是把变量用双引号括起来了,一直出错,后来在网上查,发现要先有双引号,再用单引号;即‘“变量”’;
// <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 +"'");
一定要注意单引号的问题;我之前就是把变量用双引号括起来了,一直出错,后来在网上查,发现要先有双引号,再用单引号;即‘“变量”’;
相关文章推荐
- c#将查询到SQL的数据放到DataTable里,再根据条件查询放到新的表里
- DataTable中查询符合条件的数据
- jdbc获取符合查询条件的记录数据---ResultSet
- php中mysql一条sql语句查询出所有符合条件的数据,该怎么写?
- Linq 多条件查询DATATABLE数据时,报Linq Exception(NullReferenceException)错误
- 【.Net】C# 将Access中时间段条件查询的数据添加到ListView中
- C#中将DataGridView中查询出来的数据使用DataTable导出为Excel表格(通过NPOI)
- MongoDB查询内嵌数组(限定返回符合条件的数组中的数据)(1)
- C#用Oledb查询Excel某个sheet中的数据——按多个条件查询
- mysql随机查询出一条 符合条件的数据
- 创建与旧的DataTable同样架构的DataTable 并把符合条件的数据填充的新DataTable中 并把旧表的重复数据去掉
- C#Winform内存加载多条件查询数据
- C#实现listview 模糊查询 并且使符合条件的选中首个
- 将datatable里符合条件的记录取出添加到另一个datatable进行数据绑定!
- SQL----多张表连接查询,只查出符合条件的数据
- C#如何将一个DataTable中满足条件的数据导入另一个DataTable
- thinkPHP后台查询mySQL中数据时,当没有符合条件的记录count结果集的值为1
- c#开发连接oracle数据库查询条件中含汉字但是查不到数据
- C# DataTable中查询指定字段名称的数据
- C#中,当从数据库中查询到数据,以DataTable类型返回后,如果需要对DataTable中的数据进行筛选,可以选择下面的方式