zoukankan      html  css  js  c++  java
  • 学习:关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法(转)


    在 实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的 DataTable已经在本地被改动,又没有写回数据库(可能还要作其他改动),在这些情况下,其实只要用.NET类库中提供的DataView类的强大 功能(主要是用它的RowFilter属性),就能方便地解决这类查询问题。
    常有网友在网上询问怎么在DataTable中执行DataTable.Select("条件")返回DataTable,今天我在这里给个解决方法给大家参考:
    代码如下:

      ///<summary>
     
    /// 执行DataTable中的查询返回新的DataTable
     
    /// </summary>
     
    /// <param name="dt">源数据DataTable</param>
     
    /// <param name="condition">查询条件</param>
     
    /// <returns></returns>
      private DataTable GetNewDataTable(DataTable dt,string condition)
      {            
          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]);
          } 
          
    return newdt;//返回的查询结果
       }

    嘿嘿,都是一样的,循环添加行

    DataRow[] rows = dt.Select(conditions); 
    foreach(DataRow row in rows) 

        newdt.Rows.Add(row.ItemArray); 

    return newdt;

    davin: 我今天下午也是遇到这样一个问题,关于datatable 的过滤问题,我要求取出过滤后结果的前20条,一直徘徊在filterRow和select方法之间,filterrow性能很差,select()返回 dataRow[]不好操作,不过看到你的做法,dt.Clone();
    性能确实很严重,如果dt是一个大数据量的表
    --------------------------------------------------------
    dt.clone()应该没有性能问题。
    clone()方法仅仅复制结构信息,不拷贝数据


    文章来源:http://www.cnblogs.com/purplefox2008/archive/2009/11/01/1593921.html

  • 相关阅读:
    c语言中程序的循环控制 大小值的判断及赋值
    python中猜数字小游戏
    R语言中自编函数(例题)
    c语言中continue语句
    c语言中程序的循环控制 变量的非常规变化例题
    python中向列表中添加元素
    mean
    python中原始字符串和长字符串
    ArcInfo 的工作空间和 Coverage
    ArcGIS资料大全
  • 原文地址:https://www.cnblogs.com/LeimOO/p/1596809.html
Copyright © 2011-2022 走看看