• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#Datatable的Select()方法简介

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

 

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

  1 using System;
  2 
  3 using System.Collections.Generic;
  4 
  5 using System.Text;
  6 
  7 using System.Data;
  8 
  9  
 10 
 11 namespace TestDataTableSelect
 12 
 13 {
 14 
 15     class Program
 16 
 17     {
 18 
 19         static DataTable dt = new DataTable();
 20 
 21         static void Main(string[] args)
 22 
 23         {         
 24 
 25             DataColumn dc1 = new DataColumn("id");
 26 
 27             dc1.DataType=typeof(int);
 28 
 29             DataColumn dc2 = new DataColumn("name");
 30 
 31             dc2.DataType=typeof(System.String);
 32 
 33             dt.Columns.Add(dc1);
 34 
 35             dt.Columns.Add(dc2);
 36 
 37             for (int i = 1; i <=10;i++ )
 38 
 39             {
 40 
 41                 DataRow dr = dt.NewRow();
 42 
 43                 if (i <= 5)
 44 
 45                 {
 46 
 47                     dr[0] = i;
 48 
 49                     dr[1] = i + "--" + "hello";
 50 
 51                 }
 52 
 53                 else
 54 
 55                 {
 56 
 57                     dr[0] = i;
 58 
 59                     dr[1] = i + "--" + "nihao";
 60 
 61                 }
 62 
 63                 dt.Rows.Add(dr);
 64 
 65             }
 66 
 67  
 68 
 69             Select();
 70 
 71             Select("id>='3' and name='3--hello'");//支持and
 72 
 73             Select("id>='3' or id='1'");//支持or
 74 
 75             Select("name like '%hello%'");//支持like   
 76 
 77             Select("id>5","id desc");
 78 
 79             Select("id>5", "id desc",DataViewRowState.Added);
 80 
 81         }
 82 
 83  
 84 
 85         private static void Select()
 86 
 87         {
 88 
 89             DataRow[] arrayDR = dt.Select();
 90 
 91             foreach(DataRow dr in arrayDR)
 92 
 93             {
 94 
 95                 Console.WriteLine(dr[0].ToString()+"    "+dr[1].ToString());
 96 
 97             }
 98 
 99             Console.ReadLine();
100 
101         }
102 
103  
104 
105         private static void Select(string filterExpression)
106 
107         {
108 
109             DataRow[] arrayDR = dt.Select(filterExpression);
110 
111             foreach (DataRow dr in arrayDR)
112 
113             {
114 
115                 Console.WriteLine(dr[0].ToString() + "    " + dr[1].ToString());
116 
117             }
118 
119             Console.ReadLine();
120 
121         }
122 
123  
124 
125         private static void Select(string filterExpression, string sort)
126 
127         {
128 
129             DataRow[] arrayDR = dt.Select(filterExpression,sort);
130 
131             foreach (DataRow dr in arrayDR)
132 
133             {
134 
135                 Console.WriteLine(dr[0].ToString() + "    " + dr[1].ToString());
136 
137             }
138 
139             Console.ReadLine();
140 
141         }
142 
143  
144 
145         private static void Select(string filterExpression, string sort, DataViewRowState recordStates)
146 
147         {
148 
149             DataRow[] arrayDR = dt.Select(filterExpression, sort,recordStates);
150 
151             foreach (DataRow dr in arrayDR)
152 
153             {
154 
155                 Console.WriteLine(dr[0].ToString() + "    " + dr[1].ToString());
156 
157             }
158 
159             Console.ReadLine();
160 
161         }
162 
163     }
164 
165 }
View Code

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

感谢:http://blog.csdn.net/lubiaopan/article/details/5880220


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#加密术发布时间:2022-07-13
下一篇:
C#导出数据至CSV发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap