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" });

  • 相关阅读:
    一些关于微电子方面的笔试题
    [JavaScript]Redeclaring variable
    [JavaScript]How to run Jasmine in Intellij/WebStorm?
    [JavaScript] Use `+` opertor to add one string and one number
    [CoffeeScript]CoffeeScript学习笔记
    Study Note for grunt
    grunt.js
    [转]Vim常用命令速查
    如何在Web Page里体验CoffeeScript的 功能
    [JavaScript] 如何使用Ruby gem运行jasmine test case
  • 原文地址:https://www.cnblogs.com/grj001/p/12225281.html
Copyright © 2011-2022 走看看