lubiaopan 原文 Datatable的Select()方法简介

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 对象的数组。

下面是对这些方法进行演示的示例:

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;namespace TestDataTableSelect
{class Program{static DataTable dt = new DataTable();static void Main(string[] args){         DataColumn dc1 = new DataColumn("id");dc1.DataType=typeof(int);DataColumn dc2 = new DataColumn("name");dc2.DataType=typeof(System.String);dt.Columns.Add(dc1);dt.Columns.Add(dc2);for (int i = 1; i <=10;i++ ){DataRow dr = dt.NewRow();if (i <= 5){dr[0] = i;dr[1] = i + "--" + "hello";}else{dr[0] = i;dr[1] = i + "--" + "nihao";}dt.Rows.Add(dr);}Select();Select("id>='3' and name='3--hello'");//支持andSelect("id>='3' or id='1'");//支持orSelect("name like '%hello%'");//支持like   Select("id>5","id desc");Select("id>5", "id desc",DataViewRowState.Added);}private static void Select(){DataRow[] arrayDR = dt.Select();foreach(DataRow dr in arrayDR){Console.WriteLine(dr[0].ToString()+"    "+dr[1].ToString());}Console.ReadLine();}private static void Select(string filterExpression){DataRow[] arrayDR = dt.Select(filterExpression);foreach (DataRow dr in arrayDR){Console.WriteLine(dr[0].ToString() + "    " + dr[1].ToString());}Console.ReadLine();}private static void Select(string filterExpression, string sort){DataRow[] arrayDR = dt.Select(filterExpression,sort);foreach (DataRow dr in arrayDR){Console.WriteLine(dr[0].ToString() + "    " + dr[1].ToString());}Console.ReadLine();}private static void Select(string filterExpression, string sort, DataViewRowState recordStates){DataRow[] arrayDR = dt.Select(filterExpression, sort,recordStates);foreach (DataRow dr in arrayDR){Console.WriteLine(dr[0].ToString() + "    " + dr[1].ToString());}Console.ReadLine();}}
}

注意事项:上面的Select操作是大小写不敏感的(记录的字段不敏感),如果需要区分大小写,需要将DataTable的caseSensitive属性设为true。

转载于:https://www.cnblogs.com/arxive/p/6007528.html

C# Datatable的Select方法相关推荐

  1. C# DataTable的Select()方法不支持 != 判断

    异常描述: 用户代码未处理 System.Data.SyntaxErrorException HResult=-2146232032 Message=无法解释位置 23 的标记"!" ...

  2. [datatable]关于在DataTable中执行DataTable.Select(“条件“)返回DataTable的解决方法

    [datatable]关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法 参考文章: (1)[datatable]关于在Da ...

  3. webform计算某几列结果_利用DataTable.Compute等方法和属性做各种统计(某一列的总和sum、不重复的某列记录数distinct)...

    对应sql语句 select UserID, UserName, UserMoney from Users 从数据库里利用SqlDataAdapter读取出DataSet的方法不写了,这个好简单,写统 ...

  4. DataTable数据过滤方法

    转自:https://blog.csdn.net/u011981242/article/details/52419460 筛选DataTable中的数据,使用 Select()方法,筛选结果可以保存到 ...

  5. C#中协变和逆变的基本概念、List和List.Select方法的命名空间

    在 C# 中,协变和逆变能够实现数组类型.委托类型和泛型类型参数的隐式引用转换. 协变保留分配兼容性,逆变则与之相反. msdn 解释如下: "协变"是指能够使用与原始指定的派生类 ...

  6. DataTable的AcceptChange方法为什么不能在Update之前?

    本人转载http://www.cnblogs.com/telnet_mike/archive/2011/08/29/2159013.html 总结:DataTable.AcceptChanges相当于 ...

  7. 【jQuery源码】select方法

    1 /** 2 * select方法是Sizzle选择器包的核心方法之一,其主要完成下列任务: 3 * 1.调用tokenize方法完成对选择器的解析 4 * 2.对于没有初始集合(即seed没有赋值 ...

  8. java mysbatis select_java相关:详解Mybatis中的select方法

    java相关:详解Mybatis中的select方法 发布于 2020-7-3| 复制链接 摘记: selectById方法根据id,查询记录 ```java public void updateRe ...

  9. 【Java】NIO中Selector的select方法源码分析

    该篇博客的有些内容和在之前介绍过了,在这里再次涉及到的就不详细说了,如果有不理解请看[Java]NIO中Channel的注册源码分析, [Java]NIO中Selector的创建源码分析 Select ...

  10. ruby hash方法_Ruby中带有示例的Hash.select方法

    ruby hash方法 哈希选择方法 (Hash.select Method) In this article, we will study about Hash.select Method. The ...

最新文章

  1. X-Forwarded-For 会少记录一次代理服务器的IP
  2. mysql栏的范围外值,MySQL中各种字段的取值范围-数据库专栏,MySQL
  3. 还有人记得【日之韵】吗?——提供下载
  4. Linux软件安装管理 - CentOS (二) ---- yum在线安装
  5. mysql 删除视图 命令_在MySQL中,删除视图使用(????)命令。
  6. error C2664: “wcscpy”: 不能将参数 1 从“LPSTR”转换为“wchar_t *”
  7. 基于scrapy爬虫的天气数据采集(python)
  8. mysql期末考试试卷_mysql试题
  9. 卢克增加服务器,DNF卢克跨区服务器崩溃?策划:暗制造者临时加入安图恩攻坚...
  10. Nginx 附录A 编码风格 和 附录B 常用API
  11. 因“5毛钱”惹众怒的丰巢:我错了,下次还敢
  12. 基于Visual C++2013拆解世界五百强面试题--题8-数组的排序和查找
  13. 从PCA和SVD的关系拾遗
  14. realtekrtl8139网卡驱动 linux,Realtek网卡驱动官方版-瑞昱网卡驱动下载-PC下载网
  15. 网页设计_导航条_下拉菜单
  16. 生活娱乐 360安全卫士和QQ大战
  17. 评价PE基金绩效的常用指标IRR、MIOC、DPI、TVPI意义
  18. 戴仁光:神奇的推广力量——软文
  19. 网络打印机计算机服务,Win7怎么开启打印机服务 Win7开启打印机服务方法 (全文)...
  20. 脱离标准流(1)浮动

热门文章

  1. 【POJ2406】Power Strings(hash/kmp)
  2. 联想微型计算机改win76,装不了Win7?采用第六代酷睿处理器的电脑改装Win7的方法...
  3. 毕业生推荐表特长计算机专业,优秀毕业生推荐表个人简历怎么写
  4. 机器学习- 吴恩达Andrew Ng - week3-1 Classification
  5. 极客大学架构师训练营-架构师技术图谱-大作业二
  6. 获取最顶层的ViewController top ViewController swift
  7. java的css的块_CSS基础知识(概念、块级元素、行内元素、选择器)
  8. 2021-09-07LFM(latent factor model)
  9. Spring Cloud随记---分布式配置中心初探--一个单节点的配置中心
  10. HMM和Viterbi