• DataView.RowFilter筛选DataTable中的数据


    //定义一个DataView ,得到一个全部职员的视图
    DataView dataView1 = DbHelperSQL.QueryDataView(sql);

    //过滤得到一个只显示男职员的视图 
    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' ) "; // 非空

    DataTable dt = DataView.ToTable();正确的。

    DataTable dt = DataView.Table; 获取的是原来构造DataView的那个原表(没有过滤之前的那个表)。

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

    --------------------------------------------------------------------------------------------------------------------------

    若要形成 RowFilter 值,请指定列的名称,后跟一个运算符和一个要筛选的值。 该值必须用引号括起来。 例如:

    "LastName = 'Smith'"

    若要只返回那些具有 null 值的列,请使用以下表达式:

    "Isnull(Col1,'Null Column') = 'Null Column'"

    下面的示例创建 DataView 并设置它的 RowFilter 属性。

    private void MakeDataView()  
    {
    DataView view = new DataView();
    view.Table = DataSet1.Tables["Suppliers"];
    view.AllowDelete = true;
    view.AllowEdit = true;
    view.AllowNew = true;
    view.RowFilter = "City = 'Berlin'";
    view.RowStateFilter = DataViewRowState.ModifiedCurrent;
    view.Sort = "CompanyName DESC";
    // Simple-bind to a TextBox control
    Text1.DataBindings.Add("Text", view, "CompanyName");
    }
  • 相关阅读:
    信息安全系统设计基础第八周期中复习总结
    layui下各种富文本的冲突情况
    TP3.2+find_set_in 以及 find_set_in和like的区别
    tp5+linux+apache php7.1.30环境下,上传图片报错:mkdir():permission denied
    一次基于老古董thinkPHP3.1的修改尝试
    微信网页开发 thinkphp5.0的try-catch和重定向
    CentOS 7.2下服务器配置(linux+apache+php+mysql)
    微信小程序踩坑(不定时更新)
    PHP 定时自动执行代码
    PHP TP5 文章评论+积分+签到
  • 原文地址:https://www.cnblogs.com/ljs-13/p/12126339.html
Copyright © 2020-2023  润新知