用Rowfilter加入过滤条件

eg:

string sql = "select Name,Age,Sex from UserInfo";

DataTable dt = DataAccess.GetDataTable(sql);//外部方法(通过一条查询语句返回一个DataTable)

dt.DefaultView.RowFilter = "Sex=女";

dt.DefaultView.RowFilter = "Age>18";

dt.DefaultView.RowFilter = "Name like '%张%'";

不过RowFilter不支持不等于(<>、!=、not like),不过如果只是单纯的对确定的字符串操作,可以用in和not in,数据库查询语句则不行。

Dim dt As DataTable = Getdata(20078, "abc")
Dim view As DataView = New DataView(dt)
view.RowFilter = "Names in('ttt','tttt')"
GridView1.DataSource = view.ToTable() --这个才过滤成功 
GridView1.DataBind()

Private Function GetNewTable(ByVal dt As DataTable, ByVal filter As String) As DataTable
Dim newTable As DataTable = dt.Clone()
Dim drs As DataRow() = dt.Select(filter)
For Each dr As DataRow In drs
Dim arr As Object() = dr.ItemArray
Dim newrow As DataRow = newTable.NewRow()
For i As Integer = 0 To arr.Length - 1
newrow(i) = arr(i)
Next
newTable.Rows.Add(newrow)
Next
Return newTable
End Function

datatable 中select在vb.net中写法

ds.Tables("RoomType").Select("MealType=" & "'" & mgdr("MealType") & "' and Roomtypecode=" & "'" & mgdr("Roomtypecode") & "' and Availability=" & "'" & mgdr("Availability") & "' and VendorCurreny=" & "'" & mgdr("VendorCurreny") & "' and RoomAdults=" & "'" & mgdr("RoomAdults") & "' and FromDate=" & "'" & mgdr("FromDate") & "' and ToDate=" & "'" & mgdr("ToDate") & "' and Runno=" & "'" & mgdr("Runno") & "'")

也可以用String.Format 格式化

data.Tables("error").Columns.Remove("postXml")'移除某列数据
GridView2.DataSource = data.Tables("error")
GridView2.DataBind()

DataTable RowFilter 过滤数据的更多相关文章

  1. ADO.NET 快速入门(十):过滤数据

    我们有很多方法来过滤数据.一种是在数据库命令级别,利用 where 子句查询过滤数据.另一种是在数据填充到 DataSet 以后过滤数据.本篇讨论后者.   一旦数据填充到 DataSet,你可以使用 ...

  2. 20180322 对DataTable里面的数据进行去重

    对DataTable里面的数据进行去重 DataTable dt = new DataTable(); dt.Columns.Add("Id", typeof(int)); dt. ...

  3. 怎样简单灵活地将DataTable中的数据赋值给model

    最近在做的一个项目中,有13个方法都需要用到同一种处理方式:通过SQL语句从数据库获取一条指定的数据,并将该数据中的每个值都赋值给一个model,再将这个model中的数据通过微信发送出去.每个方法都 ...

  4. C#利用SqlDataAdapte对DataTable进行批量数据操作

    C#利用SqlDataAdapte对DataTable进行批量数据操作,可以让我们大大简化操作数据的代码量,我们几乎不需要循环和不关心用户到底是新增还是修改,更不用编写新增和修改以及删除的SQL语句, ...

  5. asp.net过滤数据中有异常数据字符串

    /// <summary> /// 过滤数据 /// </summary> /// <param name="_str"></param& ...

  6. 用php自带的filter函数验证、过滤数据 -转载

    PHP过滤器包含两种类型 Validation:用来验证验证项是否合法 Sanitization:用来格式化被验证的项目,因此它可能会修改验证项的值,将不合法的字符删除等. input_filters ...

  7. Android利用Filter过滤数据

    MainActivity如下: package cc.testfilterable; import java.util.ArrayList; import java.util.HashMap; imp ...

  8. Silverlight中如何自己写方法将DataTable转换为PagedCollectionView数据(动态创建类)

    将DataTable转换为PagedCollectionView数据,我们可以借用DataTable的GetBindableData()方法,如下: DataTable dt=new DataTabl ...

  9. 从DataTable中查询数据

    /// <summary> /// 从DataTable中查询数据 /// </summary> /// <param name="tb">待处 ...

随机推荐

  1. 28UDP

    UDP通信流程步骤: 服务端: 等待(被动)接收发送 1: 创建 socket:  socket() 2: 绑定端口:      bind() 3: 读取消息:      read() 4: 发送消息 ...

  2. cdoj1580 简单图论问题

    地址:http://acm.uestc.edu.cn/#/problem/show/1580 题目: 简单图论问题 Time Limit: 3000/1000MS (Java/Others)     ...

  3. 【转】网页窗口DIV自定义拖动

    一个来自网上的东西- -被我捡到了 然后我访问到了 发出来就可以粘贴复制自己做成js文件了吧 // by zhangxinxu welcome to visit my personal website ...

  4. centos ssh免密码秘钥登录

    假设从A主机ssh登录B主机,用秘钥代替密码,步骤如下: 1.在A主机上执行:ssh-keygen -t  rsa 一切默认,不用输入密码,生成两个文件: /root/.ssh/id_rsa /roo ...

  5. context.Request方法总结

    Request.Params为获取的包含上述两种集合外,还包括当前运行环境变量,COOKIES等的集合.Request.QueryString["param"] getReques ...

  6. Python面试题之Python中的lambda map filter reduce zip

    当年龟叔想把上面列出来的这些都干掉.在 “All Things Pythonic: The fate of reduce() in Python 3000”这篇文章中,他给出了自己要移除lambda. ...

  7. CSS Float(浮动)

    CSS Float(浮动) 一.CSS Float(浮动) CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列. Float(浮动),往往是用于图像,但它在布局时一样非常 ...

  8. PHP+MySQL数据库编程的步骤

    第一步:PHP连接MySQL服务器 第二步:选择当前要操作的数据库 第三步:设置请求或返回的数据的字符集 第四步:执行各种SQL语句. PHP连接MySQL服务器 1.mysql_connect() ...

  9. centos 最新版git 致命错误: zlib.h:没有那个文件或目录

    遇到此类问题通常是缺少对应的库文件. 由于yum install是老版本的git 还是1.8的 如果需要安装新版本的git,官方给出的url:https://git-scm.com/download/ ...

  10. Ubuntu16.04怎么安装virtualenv虚拟环境

    最近安装virtualenv的python虚拟环境,在网上找了很多,尝试了很多,都有各种问题,最终搞定后,给大家分享下我的过程,希望大家少走弯路. 本次安装是基于Ubuntu16.04Linux版本安 ...