zoukankan      html  css  js  c++  java
  • RowFilter 对于已获取到的dataset进行过滤

    原文发布时间为:2009-11-12 —— 来源于本人的百度文章 [由搬家工具导入]

    DataView的属性RowFilter使用方法

    p.s. 重点在于DataView是DateTable相关联的一个视图而已,无论你如何使用RowFilter,DataView虽然被改变,但DateTable数据不会减少,所以你不要幻想连续使用多个RowFilter 来得到叠加过滤的效果,一个DataView只支持一个RowFilter,你只能使用 not ,and 来连接多个过滤条件。

    为了优化语句,减少复杂查询来加快查询速度,我们需要使用DataView的属性RowFilter,下面简单介绍下这个 RowFilter

    <%

    //定义一个DataView ,得到一个全部职员的视图
    DataView dataView1 = dataset1.Tables[0].DefaultView;
    //过滤得到一个只显示男职员的视图
    dataView1.RowFilter = " sex='男' ";

    //放弃过滤,现在仍然能够得到一个全部职员的视图
    dataView1.RowFilter = null;

    //现在过滤得到一个只显示女职员的视图
    dataView1.RowFilter = " sex='女' ";

    //获取性别字段为空的职员
    dataView1.RowFilter = " sex is null ";
    //或者
    dataView1.RowFilter = " Isnull( sex, 'Null Column') = 'Null Column' ";

    //获取时间为空(NULL)和非空的视图
    dataView1.RowFilter = " AddTime is null ";//空
    dataView1.RowFilter = " AddTime is not null ";// 非空
    //或者这里也可以先用Convert将日期时间(DateTime)字段转为字符串,然后做空值比较
    dataView1.RowFilter = " Isnull( Convert(AddTime, 'System.String'),'Null Column') = 'Null Column' "; //空
    dataView1.RowFilter = " not ( Isnull( Convert(AddTime, 'System.String'),'Null Column') = 'Null Column' ) "; // 非

    若要过滤出前几条,后几条,可以结合 Row_Number() 。 ROW_NUMBER() OVER(ORDER BY addtime DESC) as row

    dataView1.RowFilter = "row<2";

    dataView1.RowFilter = "row<>2";

    ============

    repeater1.DataSource=dataView1;

    repeater1.DataBind();

  • 相关阅读:
    TreeMap Red-Black tree
    Java实现生产者消费者问题与读者写者问题
    一个对象占用多大内存
    MySQL索引背后的数据结构及算法原理
    Java并发编程与技术内幕:线程池深入理解
    Java Spring 中你不知道的注入方式
    面试中的排序算法总结
    JAVA反射
    StringBuilder与StringBuffer的区别
    Java多线程总结【转】
  • 原文地址:https://www.cnblogs.com/handboy/p/7158330.html
Copyright © 2011-2022 走看看