Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Datatable.select() 方法的使用

Datatable.select() 方法的使用

作者头像
乔达摩@嘿
发布于 2020-09-11 07:23:13
发布于 2020-09-11 07:23:13
9500
举报
文章被收录于专栏:嘿dotNet嘿dotNet

文章为转载 ,原文地址

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'");//支持and

Select("id>='3' or id='1'");//支持or

Select("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。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-10-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linq 实现 DataTable 行转列
由于工作需要,要把查出来的DataTable实现 行转列, 正好这一阵子在用Linq 就做了一个行转列的小例 子 转换前的table: 转换后的table:  代码里有详细的说明, 还有一些参数我都截
lpxxn
2018/01/31
2.5K0
Linq 实现 DataTable 行转列
Linq 和DefaultView两种方法去掉DataTable 里的重复行
在做项目的时候经常会遇到DataTable 里的数据重复,或者合并两个DataTable后有数据重复 一般我们是想把重复的删除掉,还有其它的方式实现比如用Linq和DataTable的DefaultV
lpxxn
2018/01/31
1.5K0
Linq 和DefaultView两种方法去掉DataTable 里的重复行
sqlserver 的事务和c#的事务
sql的事务 1 sql 2 create database model 3 go 4 use model 5 go 6 create table Stu( 7 id int , 8 name varchar(200) 9 ) 10 go 11 select * from Stu 12 go 13 begin transaction cc 14 begin 15 --print @@Trancount 16 insert into Stu (id,name) values(1,'33
lpxxn
2018/01/31
1.1K0
常用C#代码「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/195508.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/30
2.6K0
常用C#代码「建议收藏」
C# DataTable 用法简介
C# DataTable 的常见用法: (1)新建数据表。 DataTable dt=new DataTable();如果带个String参数,此参数表示表名。 (2)向表添加列。 //数据库的Nvarchar等类型,在此可用String兼容。可不指明数据类型 DataColumn dc = new DataColumn("商品编号", typeof(system.string)); dt.Columns.Add(dc); (3)设置表特定行与列的数据值。 dt.Rows[i].SetField<int>
恋喵大鲤鱼
2020/04/03
1.7K0
向datagrid中加横向 纵向的合计 (在datatable中实现,datatable间倒数据)
如果实现?? protected System.Web.UI.WebControls.DataGrid DataGrid1; /// <summary> /// 数据来源 /// </summary> DataSet CreateDataSource() { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("名称", typeof(string))); dt.Colu
阿新
2018/04/13
2K0
DataTable排序结果的纠正
默认情况下,即便db中某一列的值是数字,查询出来的DataSet/DataTable里,Column的类型都是String型,所以当用dataTable.DefaultView.Sort ="XXX ASC"排序时,都是按字符串排序处理的,并不是我们想要的结果,下面给出了二种解决办法: using System; using System.Data; namespace DataTableSortSample { class Program { static void Ma
菩提树下的杨过
2018/01/24
1.5K0
C#代码示例:在WinForm中创建并绑定一个DataTable
在我的一篇文章中,我解释了如何在没有数据库的情况下以web形式绑定gridview。这里,我将解释如何在没有数据库的windows窗体中绑定datagrid。
程序你好
2018/07/23
3.9K0
将Excel文件数据库导入SQL Server
将Excel文件数据库导入SQL Server的三种方案//方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server
Java架构师必看
2021/03/22
2.4K0
C#:DataTable映射成Model
这是数据库开发中经常遇到的问题,当然,这可以用现成的ORM框架来解决,但有些时候,如果DataSet/DataTable是第三方接口返回的,ORM就不方便了,还得自己处理。 反射自然必不可少的,另外考虑到DataTable中的ColumnName通常与Model的PropertyName并不严格对应,可以用Attribute来记录这种映射关系。 步骤1:先创建一个DataFieldAttribute类 1 using System; 2 3 namespace Jimmy.ORM 4 { 5
菩提树下的杨过
2018/01/24
8960
List,DataTable实现行转列的通用方案
本文通过行转列引出System.Linq.Dynamic,并介绍了过滤功能,其实它的用处还有很多,等待大家发掘。
用户1168362
2018/01/05
2K0
List,DataTable实现行转列的通用方案
C# NOPI 项目实战(经典)(可下载项目源码)
这篇文章主要介绍了如何安装NPOI,以及NPOI具体如何使用,并且用具体实例介绍了excel导入到datagridview以及 datagridview如何导出到excel并保存。如果不清楚这块的去我公众号去搜索这篇文章阅读。
zls365
2021/02/26
2.3K0
使用NPOI导出,读取EXCEL(可追加功能)
使用NPOI导出,读取EXCEL,具有可追加功能 看代码 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.IO; 5 using System.Data; 6 using NPOI.SS.UserModel; 7 using NPOI.XSSF.UserModel; 8 using NPOI.HSSF.UserModel; 9 10 name
冰封一夏
2019/09/11
1.9K0
LINQ分页和排序,skip和Take 用法
LINQ分页和排序,skip和Take 用法 dbconn.BidRecord.OrderBy(p=>p.bid_id).ToList<BidRecord>().OrderBy(p => p.bid_id).Skip(skip).Take(take).ToList<BidRecord>(); 上面就是分页带排序的方法。 说一下问什么这样做 dbconn 是Modle的对象 BidRecord 是一个实体 P=〉p.bid_id 是排序的条件 OrderBy 是排序(后面是条件)然后要查询所有的,在所有的数据
hbbliyong
2018/03/05
1.9K0
.NET程序设计复习总结
没有两三天.NET就要考试了,按照考试大纲自己梳理一遍( 临时抱佛脚 ) 有些知识点大纲不考就没总结,面向考试编程
唔仄lo咚锵
2020/09/15
1.4K0
DataTable,List去重复记录的方法
今天一位朋友问如何去掉DataTable里重复的记录(DataTable是别人返回过来的,不能再重新查询数据库,所以无法用sql中的select distinct xxx处理,只能在DataTable上动脑筋)  思路:将DataTable转成IEnumerable,然后就能调用Distinct方法了 by 菩提树下的杨过 using System.Collections.Generic;  using System.Linq;  using System.Data;  using System;  n
菩提树下的杨过
2018/01/23
1.9K0
动态生成TreeView方法(二)
这次是用递归的方法实现 ,我想大家都知道怎么做吧,就不 多说了, 还是不建议用递归,数据量大了会映响速度,动态生成TreeView方法(一)是我比较喜欢的方法 看一下效果图 前台代码: <%@ Pag
lpxxn
2018/01/31
1.3K0
动态生成TreeView方法(二)
NPOI操作EXCEL
------------------------------------------------------------------------
zls365
2020/10/30
1.8K0
NPOI操作EXCEL
数据库之ADO.NET基础知识整理
       之前我们所学只能在查询分析器里查看数据,操作数据,我们不能让普通用户去学sql,所以我们搭建一个界面(Web Winform)让用户方便的操作数据库中的数据
洋仔聊编程
2019/01/15
2K0
C#的DataTable操作方法
1.将泛型集合类转换成DataTable(表中无数据时使用): public static DataTable NullListToDataTable(IList list) {
彭泽0902
2018/01/04
2.1K0
相关推荐
Linq 实现 DataTable 行转列
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档