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'");//支持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() 方法的使用的更多相关文章
- 关于DataTable.Select方法偶尔无法正确查到数据的处理方法
项目中经常用DataTable在内存中存储并操作数据,在进行报表开发的时候,报表的各种过滤功能用这个内存表可以大现身手,但最近在使用过程中却遇到一个奇怪的现象,现将该问题及处理方法记录一下.这是在做护 ...
- 在DataTable中执行DataTable.Select("条件")返回DataTable;
转:http://blog.csdn.net/hcf_force/article/details/7779062 1.在DataTable中执行DataTable.Select("条件&qu ...
- DataTable.Select
转载请注明出处:http://www.cnblogs.com/havedream/p/4453297.html 方法:DataTable.Select 作用:获取 DataRow 对象的数组. 重载: ...
- 项目中遇到的 linq datatable select
1如何使用DataTable.Select选出来的Rows生成新的DataTable?DataTable dt = 数据源;DataTable dtt = new DataTable();dtt=dt ...
- 在DataTable中执行DataTable.Select("条件")
.在DataTable中执行DataTable.Select("条件")返回DataTable: // <summary> // 执行DataTable中的查询返回 ...
- C# DataTable的Select()方法不支持 != 判断
异常描述: 用户代码未处理 System.Data.SyntaxErrorException HResult=-2146232032 Message=无法解释位置 23 的标记“!”. Source= ...
- [c#基础]DataTable的Select方法
引言 可以说DataTable存放数据的一个离线数据库,将数据一下加载到内存,而DataReader是在线查询,而且只进形式的查询,如果后退一步,就不可能了,DataTable操作非常方便,但也有缺点 ...
- DataSource绑定DataTable.Select()显示system.data.DataRow问题解决的方法
有时候我们须要在控件中绑定DataTable中设定条件过滤后的数据,此时,在winForm环境中,一些控件不能正确绑定并显示数据内容.这是由于DataTable.Select()返回的是DataRow ...
- [datatable]关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法
-- :09关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法 在实际编程工程中,常常遇到这样的情况:DataTable并不 ...
随机推荐
- shell脚本调试方法
我们开启了 Shell 脚本调试系列文章,先是解释了不同的调试选项,下面介绍如何启用 Shell 调试模式. 写完脚本后,建议在运行脚本之前先检查脚本中的语法,而不是查看它们的输出以确认它们是否正常工 ...
- url 取出文件扩展名
/**url 取出文件扩展名 *///方法一function getExt1($url) { $arr = parse_url($url); $file = basename($arr[' ...
- 利用NSURLSession完成的断点续传功能
首先是业务中的.h文件 #import <UIKit/UIKit.h> #import "DenglSingleton.h" @protocol DownLoadVCd ...
- img转data
http://blog.csdn.net/lwjok2007/article/details/50756273
- jmeter3 测试soap协议-webservice接口
1.新建一个线程组 2.在线程组下新增,SOAP请求 3.设置soap请求,然后就可以测试了
- Java 微信登录授权后获取微信用户信息昵称乱码问题解决
String getUserInfoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token="+access_toke ...
- iOS TextField输入框点击键盘时随着键盘上移
-(void)textFieldDidBeginEditing:(UITextField *)textField { CGRect frame = textField.frame; int offse ...
- 第三十九节,python内置全局变量
vars()查看内置全局变量 以字典方式返回内置全局变量 #!/usr/bin/env python # -*- coding:utf8 -*- print(vars()) #输出 # {'__bui ...
- java中的静态初始化块
Java 中可以通过初始化块进行数据赋值.如: 在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块.如果使用 static 修饰初始化块,就称为静态初始化块. 需要特别注意: ...
- Entity Framework技巧系列之十三 - Tip 51 - 55
提示51. 怎样由任意形式的流中加载EF元数据 在提示45中我展示了怎样在运行时生成一个连接字符串,这相当漂亮. 其问题在于它依赖于元数据文件(.csdl .ssdl .msl)存在于本地磁盘上. 但 ...