文章为转载 ,原文地址

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。

Datatable.select() 方法的使用的更多相关文章

  1. 关于DataTable.Select方法偶尔无法正确查到数据的处理方法

    项目中经常用DataTable在内存中存储并操作数据,在进行报表开发的时候,报表的各种过滤功能用这个内存表可以大现身手,但最近在使用过程中却遇到一个奇怪的现象,现将该问题及处理方法记录一下.这是在做护 ...

  2. 在DataTable中执行DataTable.Select("条件")返回DataTable;

    转:http://blog.csdn.net/hcf_force/article/details/7779062 1.在DataTable中执行DataTable.Select("条件&qu ...

  3. DataTable.Select

    转载请注明出处:http://www.cnblogs.com/havedream/p/4453297.html 方法:DataTable.Select 作用:获取 DataRow 对象的数组. 重载: ...

  4. 项目中遇到的 linq datatable select

    1如何使用DataTable.Select选出来的Rows生成新的DataTable?DataTable dt = 数据源;DataTable dtt = new DataTable();dtt=dt ...

  5. 在DataTable中执行DataTable.Select("条件")

     .在DataTable中执行DataTable.Select("条件")返回DataTable:  // <summary> // 执行DataTable中的查询返回 ...

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

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

  7. [c#基础]DataTable的Select方法

    引言 可以说DataTable存放数据的一个离线数据库,将数据一下加载到内存,而DataReader是在线查询,而且只进形式的查询,如果后退一步,就不可能了,DataTable操作非常方便,但也有缺点 ...

  8. DataSource绑定DataTable.Select()显示system.data.DataRow问题解决的方法

    有时候我们须要在控件中绑定DataTable中设定条件过滤后的数据,此时,在winForm环境中,一些控件不能正确绑定并显示数据内容.这是由于DataTable.Select()返回的是DataRow ...

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

    -- :09关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法 在实际编程工程中,常常遇到这样的情况:DataTable并不 ...

随机推荐

  1. shell脚本调试方法

    我们开启了 Shell 脚本调试系列文章,先是解释了不同的调试选项,下面介绍如何启用 Shell 调试模式. 写完脚本后,建议在运行脚本之前先检查脚本中的语法,而不是查看它们的输出以确认它们是否正常工 ...

  2. url 取出文件扩展名

    /**url 取出文件扩展名 *///方法一function getExt1($url) {    $arr = parse_url($url);    $file = basename($arr[' ...

  3. 利用NSURLSession完成的断点续传功能

    首先是业务中的.h文件 #import <UIKit/UIKit.h> #import "DenglSingleton.h" @protocol DownLoadVCd ...

  4. img转data

    http://blog.csdn.net/lwjok2007/article/details/50756273

  5. jmeter3 测试soap协议-webservice接口

    1.新建一个线程组 2.在线程组下新增,SOAP请求 3.设置soap请求,然后就可以测试了

  6. Java 微信登录授权后获取微信用户信息昵称乱码问题解决

    String getUserInfoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token="+access_toke ...

  7. iOS TextField输入框点击键盘时随着键盘上移

    -(void)textFieldDidBeginEditing:(UITextField *)textField { CGRect frame = textField.frame; int offse ...

  8. 第三十九节,python内置全局变量

    vars()查看内置全局变量 以字典方式返回内置全局变量 #!/usr/bin/env python # -*- coding:utf8 -*- print(vars()) #输出 # {'__bui ...

  9. java中的静态初始化块

    Java 中可以通过初始化块进行数据赋值.如: 在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块.如果使用 static 修饰初始化块,就称为静态初始化块. 需要特别注意: ...

  10. Entity Framework技巧系列之十三 - Tip 51 - 55

    提示51. 怎样由任意形式的流中加载EF元数据 在提示45中我展示了怎样在运行时生成一个连接字符串,这相当漂亮. 其问题在于它依赖于元数据文件(.csdl .ssdl .msl)存在于本地磁盘上. 但 ...