码迷,mamicode.com
首页 > 其他好文 > 详细

DataTable.Compute强大的功能

时间:2016-05-03 20:38:58      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:expression   object   filter   表达式   最大值   

作用:
          计算用来传递筛选条件的当前行上的给定表达式。 
格式為:
          Object Compute (string expression,string filter)

参数:
          expression:要计算的表达式。 expression 参数需要聚合函数。
          filter:要限制在表达式中进行计算的行的筛选器。 如:“Menu_ID=5” //表示Menu_ID為5的行
返回值:
          為Object型,为计算结果。

Expression說明:
          Expression 属性的一个用途是创建计算出的列。 第二个用途是创建聚合列。类似于计算出的值,聚合基于 DataTable 中的整个行集执行操作。

表达式语法
          在创建表达式时,使用 ColumnName属性(表中列的名稱)来引用表中的列。
用法:

//得到menu1表中order列中最大值
            object s = dsSet.Tables["menu1"].Compute("Max(order)", "");


上面是纯开发的代码,重点理解方法的使用;在我们度量开发平台中使用:

dim dt=网格部件1.DataTable.Compute("Sum(种植面积)","地块号=‘"&dr["地块号"]&"‘")

二、創建Expression說明:

2.1、在为筛选器创建表达式时,用单引号将字符串括起来: 
         "LastName = ‘Jones‘" 


         2.1.1特殊字符處理:
              下面的字符是特殊字符,如下面所解释的,如果它们用于列名称中,就必须进行转义。

技术分享

2.1.2 轉義方法為:
              如果列名称包含上面的字符之一,该名称必须用中括号括起来。例如,若要在表达式中使用名为“Column#”的列,应写成“[Column#]”: 

 Total * [Column#]

由于中括号是特殊字符,如果它是列名称的组成部分,必须使用斜杠 (""") 将中括号转义。例如,名为“Column[]”的列应写成:

 Total * [Column["]] (只有第二个中括号必须转义。)

2.2、用户定义的值处理
        2.2.1义的值可以用在将与列值进行比较的表达式内。字符串的值应括在单引号内。日期值应放在磅符号 (#) 内。对于数值,允许使用小数和科学记数法。例如:

"FirstName = ‘John‘"
             "Price <= 50.00"
             "Birthdate < #1/31/82#"

   2.2.2含枚举值的列,将值强制转换为整数数据类型。例如: 

  "EnumColumn = 5"

2.3、运算符
         2.3.1 使用布尔值 AND、OR 和 NOT 运算符时允许串联。可以使用括号来组合子句和强制优先级。AND 运算符优先于其他运算符。例如: 

 (LastName =‘Smith‘ OR LastName =‘Jones‘) AND FirstName =‘John‘

2.3.2 在创建比较表达式时,允许使用下列运算符: 

技术分享   2.3.3 在表达式中还支持下列算术运算符: 

技术分享原文地址:http://bbs.delit.cn/thread-936-1-1.html

转载请注明出处:

撰写人:度量科技http://www.delit.cn

DataTable.Compute强大的功能

标签:expression   object   filter   表达式   最大值   

原文地址:http://delit.blog.51cto.com/5487020/1769785

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!