zoukankan      html  css  js  c++  java
  • C#中DataTable

    .C#中DataTable技术学习 2009-09-10 14:37:18 阅读1496 评论0   字号:大中小 订阅 .

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

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

  • 相关阅读:
    tomcat虚拟目录配置
    关于JS闭包
    数据列表里结合负边距做间隔线的技巧需注意的小细节
    前端优化技巧笔记
    浏览器工作原理相关笔记
    工作小心得(关于绝对定位元素)
    关于定位和溢出处理的一些小经历
    关于定位和z-index的一些小经历
    fullpage实现(-)
    移动端布局-实例
  • 原文地址:https://www.cnblogs.com/beeone/p/2010778.html
Copyright © 2011-2022 走看看