`

DataTable中的select()用法(转)

    博客分类:
  • c#
阅读更多
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 +"'");

一定要注意单引号的问题;我之前就是把变量用双引号括起来了,一直出错,后来在网上查,发现要先有双引号,再用单引号;即‘“变量”’;
分享到:
评论
1 楼 浪子秋水 2013-12-30  
好!!

相关推荐

    使用DataTable.Select 方法时,特殊字符的转义方法分享

    常见的特殊字符 基本都能转义 ,不知道还有没有漏掉的 ,目前使用正常 ,有需要的朋友可以参考一下

    在DataTable中执行Select(条件)后,返回DataTable的方法

    网上看到一个解决方法,感觉不错: private DataTable GetNewDataTable(DataTable dt,string condition) { DataTable newdt = new DataTable(); newdt=dt.Clone(); DataRow[] dr = dt.Select(condition...

    DataTable的常见使用Demo

    DataTable的常见使用,datetable的自定义方法,select的四种重载,项目中常用的筛选及排序。新datatable的赋值

    silverlight下的DataTable

    现在silverlight下还没有DataTable,自己写了个,用法和真的DataTable差不多,支持序列化

    C# DataTable中Compute方法用法集锦(数值/字符串/运算符/表等操作)

    主要介绍了C# DataTable中Compute方法用法,总结分析了DataTable中Compute方法常见的数值运算操作、字符串操作、运算符操作、表运算等相关技巧,需要的朋友可以参考下

    Select:一组DataTables库的选择API方法和按钮

    选择 Select将项目选择功能添加到DataTable。 项目可以是行,列或单元格,可以独立选择,也可以一起选择。 项目选择在交互式表中特别有用,在交互式表...使用DataTables构造函数中的select选项初始化Select-一个简单的

    C#使用DataSet Datatable更新数据库的三种实现方法

    本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法、DataAdapter 更新数据源以及使用sql语句更新。分享给大家供大家参考之用。具体方法如下: 一、自动生成命令的条件 ...

    LINQ 实战 1/11

    第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ功能的方法以及LINQ to DataSet。  本书适合于使用C#和VB.NET...

    开源Silverlight数据访问组件System.Data.Silverlight

    该程序集中定义了一套DataSet、DataTa对象,作为数据通讯的数据格式,完全兼容ADO.NET中的DataSet、DataTable,两者之间可以通过XML互相转换,提供相应的转换方法。程序中还定义了一套DbConnection、DbCommand对象,...

    asp.net面试题

    答:装箱就是把值类型转成引用类型,从MS IL角度看好像是boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚. 4.列举一下...

    C#使用oledb读取excel表格内容到datatable的方法

    本文实例讲述了C#使用oledb读取excel表格内容到datatable的方法。分享给大家供大家参考。具体分析如下: 首先看一段实例代码 代码如下:string strCon = @”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” + ...

    简单的ADO.net数据访问客户端

    // 使用DbClientParamEx中的扩展方法快速创建参数(需要using Data命名空间) DbParameter[] parameters = new[] { Db.Northwind.CreateParameter("id", DbType.Int32, 115, direction: ParameterDirection.Input)...

    DataTable-AltEditor:Kingcode.com的free-datatables-editor-alternative的更新版本

    至少将以下参数传递给DataTable构造函数: dom , select , buttons , altEditor: true (请参见示例)。 对于操作按钮和模式,必须使用Bootstrap或Foundation。 例子 文件夹example有一些示例,用于不同的用例...

    SqlServer参数化查询之where in和like实现之xml和DataTable传参介绍

    方案5 使用xml参数 对sql server xml类型参数不熟悉的童鞋需要先了解下XQuery概念,这里简单提下XQuery 是用来从 XML 文档查找和提取元素及属性的语言,简单说就是用于查询xml的语言说到这就会牵着到XPath,其实...

    ado[1].net中文手册 学习 ado.net的重要资料

    设置 DataTable 和 DataColumn 映射:描述如何使用表和列映射来提供从数据源中返回的列的应用程序特定名称。 将参数用于 DataAdapter:描述如何将参数用于 DataAdapter 的命令属性(包括如何将 DataSet 中列的内容...

    MysqlDLL,C#操作MYSQL数据库

     Fill(DataTable)//在 DataSet 的指定范围中添加或刷新行,以与使用 DataTable 名称的数据源中的行匹配。 (继承自DbDataAdapter。  Update(DataRow[])//通过为 DataSet 中的指定数组中的每个已插入、已更新或已...

    ORM软件monalisa-orm.zip

    DataTable&lt;DataMap&gt; rs=q.add("SELECT * FROM user WHERE name like ?","zzg%")  .add(" AND status ").in(1,2,3)  .getList(); for(User x:rs.as(User.class)){ System.out.println(x); } //DataTable query //...

    System.Data.Silverlight V2.0

    3、增加DataTable与实体类集合的互转、DataTable转换成动态类型集合、DataTable直接绑定到控件; 4、增加事务处理功能; 5、感谢网友“尘世流浪汉”提出宝贵意见,也欢迎大家试用并提出更多建议! 二、新功能示例 1...

Global site tag (gtag.js) - Google Analytics