zoukankan      html  css  js  c++  java
  • 过滤DataTable数据的Select()方法

    过滤DataTable数据的Select()方法

    2016年06月23日 14:37:07 believe209 阅读数:30339 标签: selectC#DataTable筛选过滤 更多

    个人分类: C#

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangzhen209/article/details/51743179

    DataTable是我们在进行开发时经常用到的一个类,并且经常需要对DataTable中的数据进行筛选等操作,

    下面就介绍一下Datatable中经常用到的一个方法——Select,微软提供了四个函数的重载,分别是

     
    Select()
    Select(string filterExpression)
    Select(string filterExpression, string sort)
    Select(string filterExpression,string sort, DataViewRowState record States)。
     
    1)  Select()——获取所有 System.Data.DataRow 对象的数组。
    2)  Select(string filterExpression)——按照主键顺序(如果没有主键,则按照添加顺序)获取与筛选条件相匹配的所有 System.Data.DataRow 对象的数组。
    3)  Select(string filterExpression, string sort)——获取按照指定的排序顺序且与筛选条件相匹配的所有 System.Data.DataRow 对象的数组。

    4)  Select(string filterExpression, string sort, DataViewRowState recordStates)——获取与排序顺序中的筛选器以及指定的状态相匹配的所有 System.Data.DataRow 对象的数组。

    String的参数filterExpression是查询的限定式。相当于SQL查询语言中的WHERE语句(不含WHERE),其语法符合SQL语言语法。

    1.在DataTable中执行DataTable.Select("条件")返回DataTable


    DataRow[] drArr = dt.Select("C1=’abc’");//查询
    DataRow[] drArr = dt.Select("C1 LIKE ’abc%’");//模糊查询 
    DataRow[] drArr = dt.Select("’abc’ LIKE C1 + ’%’", "C2 DESC");//另一种模糊查询的方法 
    DataRow[] drArr = dt.Select("C1=’abc’", "C2 DESC");//排序
    DataRow[] drArr =   Detailtb.Select("WZMC='"+MaterialName+"' and   CZ='"+MaterialTexture+"   and   GG='"+MaterialSpecs+"'");//多字段过滤


    DataTable dtNew = dt.Clone(); 
    for (int i = 0; i < drArr.Length; i++) 

        dtNew.ImportRow(drArr[i]);
    }

    3.5里的DataRow[]有个扩展方法CopyToDataTable(),还可以利用DataView来达到检索的目的。 
    DataTable dataSource = new DataTable(); 
    DataView dv = dataSource.DefaultView; 
    dv.RowFilter = "columnA = 'abc'";


    //1.过滤后直接获取DataTable 
    DataTable newTable1 = dv.ToTable();

    //2.设置新DataTable的TableName 
    DataTable newTable2 = dv.ToTable("NewTableName");

    //3.设置新表是否过滤重复项,拥有的列的列名以及出现的顺序 
    //即可以设置新表的字段。但是字段名肯定是老表dataSource中拥有的。 
    DataTable newTable3 = 
    dv.ToTable(true, new string[] { "columnA,columnF,columnC" });

    //4.综合了2.3两点。 
    DataTable newTable4 = 
    dv.ToTable("NewTableName", true, new string[] { "columnA,columnF,columnC" });

  • 相关阅读:
    LeetCode 242. Valid Anagram (验证变位词)
    LeetCode 205. Isomorphic Strings (同构字符串)
    LeetCode 204. Count Primes (质数的个数)
    LeetCode 202. Happy Number (快乐数字)
    LeetCode 170. Two Sum III
    LeetCode 136. Single Number (落单的数)
    LeetCode 697. Degree of an Array (数组的度)
    LeetCode 695. Max Area of Island (岛的最大区域)
    Spark中的键值对操作
    各种排序算法总结
  • 原文地址:https://www.cnblogs.com/grj001/p/12225282.html
Copyright © 2011-2022 走看看