DataTable.Compute强大的功能

作用:
          计算用来传递筛选条件的当前行上的给定表达式。 
格式為:
          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特殊字符處理:
              下面的字符是特殊字符,如下面所解释的,如果它们用于列名称中,就必须进行转义。

"n (newline)
"t (tab)
"r (carriage return)
~
(
)
#
"
/
=
>
<
+
-
*
%
&
|
^
'
"
[

          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 在创建比较表达式时,允许使用下列运算符: 

<
>
<=
>=
<>
=
IN
LIKE

         2.3.3 在表达式中还支持下列算术运算符: 
+(加)
-(减)
*(乘)
/(除)
%(模数)


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

转载请注明出处:

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

你可能感兴趣的:(DataTable.Compute强大的功能)