zoukankan      html  css  js  c++  java
  • ADO.NET编程(4)根据条件查询DataTable的值

      ADO.NET 为我们提供了一些查询内存中数据表的API,利用这些API我们可以对内存中的DataTable进行类似于查询数据库查询的操作。

    1.查询数据并对其进行排序

      当我们想要访问DataTable中特定的行时,可以根据这个表的一列或者多列作为搜索条件来访问这些数据行。

    1.1 按照主键查找数据行

       和数据库中的表类似,每个DataTable都包括一个可选的主键定义,也就是一组被指定给该表PrimaryKey成员的DataColumn对象。主键可以是来自某一列的唯一值或者是多列组成的键,根据主键找到某一行可以使用 Rows.Find() 方法:

    1 DataRow result = someTable.Rows.Find(usePrimaryKey);

    1.2 使用搜索条件筛选行

      使用主键进行搜索可以快速的找到对应的单行数据,但是如果想要搜索多列符合条件的数据行时,我们可以使用DataTable类的Select()方法,只需要向该方法传递一个包含搜索条件的字符串:

    1 DataRow[] resultRows = someTable.Select(filterCriteria);

    搜索条件的字符串类似于T-SQL构建的一个布尔语句,如果想查看筛选表达式的完整说明,可以参考MSDN:DataColumn.Expression 属性。

    1.3 对搜索结果进行排序

       默认的情况下,DataTable.Select 方法返回的DataRow对象的顺序就是这些对象被添加进表中的顺序。我们可以像SQL语句那样在查询条件中添加命令来表示排序规则:

    1 DataRow[] resultRows = someTable.Select(filterCriteria,sortRules);

    1.4 查询时区分大小写

       默认情况下,DataTable.Select 方法是不区分大小写的,如果需要对筛选条件进行大小写区分,可以设置表的CaseSensitive属性即可:

    1 someTable.CaseSensitive = true;

      

    2.使用表达式列

       DataTable同时也支持一个非常重要的功能:表达式列,就是可以根据其他行列中的数据来现实计算结果的字段。类似于T-SQL中提供的函数,我们可以根据现有行列的数据来计算出需要值。

      向DataTable中添加表达式列,可以创建一个标准的DataColumn对象,填充ColumnName和DataType属性,然后指定一个字符串表达式,对Expression属性执行自定义计算:

    1             DataColumn orderTotal = new System.Data.DataColumn();
    2             orderTotal.ColumnName = "Total";
    3             orderTotal.DataType = typeof(decimal);
    4             orderTotal.Expression = "subtotal + ISNULL(TAX,0)";
    5             someTable.Columns.Add(orderTotal);

      

    猛击下载:示例程序

    参考资料:

    《ADO.NET 4 Step by Setp》

    DataColumn.Expression 属性

  • 相关阅读:
    Linux下使用rm删除文件,并排除指定文件
    使用use index优化sql查询
    PHP面试中经常出现的composer 问题总结
    MySQL全局锁库锁表
    《MySQL必懂系列》全局锁、表级锁、行锁
    Redis面试题(2020最新版)
    What is stabs?
    链接与加载
    MachO之Segment初探
    为什么要在预编译头中加__OBJC__?
  • 原文地址:https://www.cnblogs.com/IPrograming/p/ADO_NET_4.html
Copyright © 2011-2022 走看看