C#_从DataTable中检索信息

存在于内存中的虚拟表DataTable,绑定在数据显示控件后,如果想在再检索其中某些信息,可以利用DataTable.Select方法进行检索,避免了重复的读取数据库。Select方法共有4个重载方法。

先创建一个DataTable:

DataTable dt = new DataTable("Student");//DataTable对象,表名时Student
//开始增加列头
dt.Columns.Add("编号",typeof(Int32));
dt.Columns.Add("姓名",typeof(String));
dt.Columns.Add("成绩",typeof(String));
//开始增加行数据
DataRow row = dt.NewRow();
row[0] = 1;
row[1] = "张";
row[2] = "98";
dt.Rows.Add(row);//向DataTable增加第一行记录
row = dt.NewRow();
row[0] = 2;
row[1] = "李";
row[2] = "78";
dt.Rows.Add(row);//向DataTable增加第二行记录
//设置DataTable的主键
dt.PrimaryKey = new DataColumn[]
{
dt.Columns[0]
};

利用DataTable.Select()获取所有DataRow行对象数组:

DataRow[] rows = dt.Select();
/*row现在就相当一个二维数组
* [1],[张],[98]
* [2],[李],[78]
* 获取数据和二维数组的取值是相似的
*/
string name1 = rows[0][1].ToString();//name1="张"
string name2 = rows[1][1].ToString();//name2="李"

利用DataTable.Select(String)获取指定检索条件的DataRow行对象数组:

DataRow[] rows = dt.Select("姓名='张'");
// [1],[张],[98]
string id = rows[0][0].ToString();//id=1
string name = rows[0][1].ToString();//name1 = "张"
string score = rows[0][2].ToString();//score="98"

说明:这里Select方法中的检索字符串相当于T-SQL中的where关键字后的检索字符串,语法是一样的。

DataRow[] rows1 = dt.Select("姓名='张' and 编号=1");
DataRow[] rows2 = dt.Select("姓名='张' or 成绩>'60'");

C#_从DataTable中检索信息的更多相关文章

  1. 未指定的错误,发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。数据类型不被支持。

    未指定的错误,发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息.数据类型不被支持. 博客分类: 雅芳生涯 .Net VB C# OracleMicrosoftSecurity  ...

  2. vs2003 刷新项目失败。无法从服务器中检索文件夹信息

    环境: 操作系统:windows server 2003 开发工具:Visual stuadio 2003 FrameWork: 1.1 打开web项目的时候报错   提示 项目刷新失败,无法从服务器 ...

  3. DataTable中如何去除重复的项【转】

    上周在项目中遇到一个问题,就是获取DataTable中某一列的值,因为从数据库中检索数据时,按照2个字段进行分组,而要获得的那一列刚好在分组这两列中,所以该列的值必然有重复,于是就想到了去除重复,有了 ...

  4. DataTable中如何去除重复的项 (获得某个字段中的不重复项)

    就是获取DataTable中某一列的值,因为从数据库中检索数据时,按照2个字段进行分组,而要获得的那一列刚好在分组这两列中,所以该列的值必然有重复,于是就想到了去除重复,有了思路以后在网上看了一些方法 ...

  5. 怎样简单灵活地将DataTable中的数据赋值给model

    最近在做的一个项目中,有13个方法都需要用到同一种处理方式:通过SQL语句从数据库获取一条指定的数据,并将该数据中的每个值都赋值给一个model,再将这个model中的数据通过微信发送出去.每个方法都 ...

  6. C#把DataTable中数据一次插入数据库的方法

    现在实际的情况是这样的: 客户有一台打卡机,员工打卡的信息全部储存在打卡机的Access数据库里面,现在客户引入了一种新的管理系统,需要将Access数据库中的打卡数据同步到SQL Server数据库 ...

  7. DataTable中的数据赋值给model z

    create table memberinfo ( member_id int, member_name varchar(20), member_birthday varchar(50) ) go / ...

  8. 使用OpenXML将Excel内容读取到DataTable中

    前言:前面的几篇文章简单的介绍了如何使用OpenXML创建Excel文档.由于在平时的工作中需要经常使用到Excel的读写操作,简单的介绍下使用 OpenXML读取Excel中得数据.当然使用Open ...

  9. C#-导入Excel 内容到 DataTable中

    C#-导入Excel 内容到 DataTable中 直接传入文件路径,支持所有Excel格式. 缺点:如果数据量庞大会很占内存. public static DataTable ImportExcel ...

随机推荐

  1. windows文件映射

    0x01 使用文件映射实现共享内存. 用内存映射文件实现进程间的通讯:Windows中的内存映射文件的机制为我们高效地操作文件提供了一种途径,它允许我们在进程中保留一段内存区域,把硬盘或页文件上的目标 ...

  2. centos中PATH环境变量查看和修改

    PAHT环境变量 :定义的是系统搜索命令的路径.<就是自己写的程序不打绝对路径就可以执行,必须放到 $PATH这个文件中>查看命令:echo $PATH 以添加mongodb server ...

  3. GD2模块-图像处理

    GD2模块-图像处理 1.图像处理模块的主要功能: a) 验证码 b) 加盖水印 c) 缩略图 d) 帖子图片签名 e) 在线LOGO制作 2确认PHP是否支持图像处理 检测PHPINFO文件中是否存 ...

  4. hdu 5228 OO’s Sequence(单独取数算贡献)

    Problem Description OO has got a array A of size n ,defined a function f(l,r) represent the number o ...

  5. 2019-03-08 RF 调试Zibee 数据

  6. day 35 关于线程

    并发编程之协程   对于单线程下,我们不可避免程序中出现io操作,但如果我们能在自己的程序中(即用户程序级别,而非操作系统级别)控制单线程下的多个任务能在一个任务遇到io阻塞时就切换到另外一个任务去计 ...

  7. nginx 之 proxy_pass详解

    在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径:如果没有/,表示相对路径,把匹配的路径部分也给代理走.     假设下面四种情况分别用 h ...

  8. Semaphore计数信号量

    ExecutorService exec = Executors.newCachedThreadPool(); final Semaphore semp = new Semaphore(5); for ...

  9. lava.lang.String数据转换为java.sql.Date

    在JavaWeb编程中,往往涉及数据库,javaBean,前端数据数据类型不一致的问题 数据库和javaBean之间可以直接选择相对应的数据类型,而serverlet从前端获取的数据往往是String ...

  10. spring事务管理-Spring 源码系列(6)

    Spring事务抽象的是事务管理和事务策略.而实现则由各种资源方实现的.我们最常用的数据库实现:DataSourceTransactionManager 尝试阅读一下spring 的实现代码,由3个核 ...