一般数据处理使用DataTable的情况会很多,而我们很多时候会对得到的DataTable的数据进行筛选后绑定到Combobox、GridView、Repeat等控件中,现在分享一下两种DataTable在C#程序中的筛选处理方式。

我们先手动创建一个DataTable

     DataTable dt=new DataTable();

     DataColumn dtc = new DataColumn("id",typeof(string));
            dt.Columns.Add(dtc);

dtc = new DataColumn("name",typeof(string));
            dt.Columns.Add(dtc);

dtc = new DataColumn("tel",typeof(Int32));
            dt.Columns.Add(dtc);

            //添加数据到DataTable
            DataRow dr = dt.NewRow();
            dr["id"] = "1";
            dr["name"] = "张三";
            dr["tel"] = 54531;
            dt.Rows.Add(dr);
 

第一种DataTable常规的Select。

  // 直接用DefaultView按条件返回
                     dt.DefaultView.RowFilter = strExpr;
                     dt.DefaultView.Sort = strSort;

 
//DataTable筛选,排序返回符合条件行组成的新DataTable
          DataTable dt1 = new DataTable();
                     DataRow[] GetRows = dt.Select(strExpr, strSort);
                     //复制DataTable dt结构不包含数据
                     dt1 = dt.Clone();
                     foreach (DataRow row in GetRows)
                     {
                         dt1.Rows.Add(row.ItemArray);
                     }
                     return dt1;
其中strExpr是如下

      "id>='3' and name='3--hello'"//支持and

       "id>='3' or id='1'"//支持or

      "name like '%hello%'"//支持like

strSort如下

      "id desc"

第二种则是利用linq返回List集合

 var result = ( from DataRow order in dt.Rows
                              where order["id" ].ToString() == "1"
                              orderby order["name" ]
                              select new { id= order["id"], name= order["name" ], tel= order["tel" ] }).ToList();
 
然后把结果返回绑定到空间中。
 

DataTable的筛选,过滤后绑定数据源的两种方法(DataTable的select和使用linq返回List集合)的更多相关文章

  1. BW增强数据源的两种方法

    BW增强数据源的两种方法 2009-04-01, by SAPBI 前言:我们经常会遇到系统标准的数据源,或者我们自建的数据源无法满足要求的情况,这个时候在数据源中添加几个相关的字段,可能就能满足我们 ...

  2. Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法

    在 MyEclipse 的可视化 Swing 中,有 JTable 控件. JTable 用来显示和编辑常规二维单元表. 那么,如何将 数据库SQL中的数据绑定至JTable中呢? 在这里,提供两种方 ...

  3. 一、winForm-DataGridView操作——控件绑定事件的两种方法

    在winForm窗体中绑定(注册)事件的方法有两种: 一.绑定事件 双击控件,即进入.cs的代码编辑页面,会出现 类似于“ private void 控件名称_Click(object sender, ...

  4. TreeView递归绑定数据的两种方法

    #region 绑定TreeView /// <summary> /// 绑定TreeView(利用TreeNode) /// </summary> /// <param ...

  5. PHP 取302跳转后真实 URL 的两种方法

    1 . 第一种,CURL形式[感觉处理略慢,代码偏多] $url = '将跳转的URL'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url) ...

  6. C# DataGridView绑定数据源的几种常见方式

    开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定. 1. 简单的数据绑定 例1 using (SqlConnection conn = new SqlConnect ...

  7. DataGridView绑定数据源的几种方式

    使用DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据. 将数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需设置DataSource属性即可.在绑 ...

  8. WinForm中DataReader绑定到DataGridView的两种方法

    在WinForm中,DataReader是不能直接绑定到DataGridView的,我想到了用两种方法来实现将DataReader绑定到DataGridView. SqlCommand command ...

  9. 在ArcEngine下实现图层属性过滤的两种方法

    转自chanyinhelv原文 在ArcEngine下实现图层属性过滤的两种方法 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* ...

随机推荐

  1. [WIN32]Win7软件部署清单

    工具类 DreamWeaver8 网页 XAMPP 集成的服务器/数据库 EPP4 PHP IDE JDK7 Sublime Text 2 VMWare 虚拟机 Notepad++ FoxitRead ...

  2. windows平台(不包括ARM的CE)通用的压缩和解压缩

    通用是相对的,这里指的是xp和win7(其他版本我没测试过,不要用不要来找我) #define CMP_FRM COMPRESSION_FORMAT_LZNT1|COMPRESSION_ENGINE_ ...

  3. Centos6.5 安装 RabbitMQ3.6.1

    Centos6.5 安装 RabbitMQ3.6.1 个人安装RabbitMQ总结: 安装编译工具 yum -y install make gcc gcc-c++ kernel-devel m4 nc ...

  4. solr 4.6配置正解

    最近在学习solr,可是在网上找了很多个配置的资料,要不就是solr版本不对,反正各种问题.最后终于出来了,在这里给大家分享一下 1.准备工作 我们要先去下载一个tomcat,我下载的版本是tomca ...

  5. 制作图片边框:《CSS3 Border-image》

    一个边框图片border-image

  6. python学习笔记七 初识socket(进阶篇)

    socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. sock ...

  7. iOS Error

    1),'libxml/tree.h' file not found Solution: 1.  导入libxml2.dylib 包 2.设置Header Search Paths 为 /usr/inc ...

  8. Python3基础 in 列表名 判断一个元素是否在列表中

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  9. CSS3的chapter4

    段落样式: 行高——line-height p { line-height:25px | 150% | normal;} 段落缩进——text-indent p { text-indent:2em;} ...

  10. 【Android】解析Json数据

    Json数据:"{\"UserID\":\"Allen\",\"Dep\":IT,\"QQ\":\" ...