用途
Expression 属性的一个用途是创建计算出的列。例如,若要计算税值,就要将单价乘以给定地区的税率。由于各地税率不同,不可能将单一的税率放在列中;于是便用 Expression 属性来计算这个值,如下面的代码所示:
DataSet1.Tables("Products").Columns("tax").Expression = "UnitPrice * 0.086"
第二个用途是创建聚合列。类似于计算出的值,聚合基于 DataTable 中的整个行集执行操作。一个简单的示例是对返回到集中的行数进行计数,这也就是您可能用来对某个特定销售人员完成的交易次数进行计数的方法,如下面的 Visual Basic 代码所示:
DataSet1.Tables("Orders").Columns("OrderCount").Expression = "Count(OrderID)"
表达式语法
在创建表达式时,使用 ColumnName 属性来引用列。例如,如果一个列的 ColumnName 是“UnitPrice”(单价),而另一个是“Quantity”(数量),则表达式将是:"UnitPrice * Quantity"
在为筛选器创建表达式时,将字符串放到单引号中:"LastName = 'Jones'"
下面的字符是特殊字符,如下面所解释的,如果它们用于列名称中,就必须进行转义:
/n (newline) /t (tab) /r (carriage return) ~ ( ) # / / = > < + - * % & | ^ ' " [ ]
如果列名称包含上面的字符之一,该名称必须用中括号括起来。例如,若要在表达式中使用名为“Column#”的列,应写成“[Column#]”:
由于中括号是特殊字符,如果它是列名称的组成部分,必须使用斜杠 ("/") 将中括号转义。例如,名为“Column[]”的列应写成:
Total * [Column[/]] (只有第二个中括号必须转义。)
用户定义的值可以用在将与列值进行比较的表达式内。字符串值应放在单引号内。日期值应放在磅符号 (#) 内。对于数值,允许使用小数和科学记数法。例如:
"FirstName = 'John'"
"Price <= 50.00"
"Birthdate < #1/31/82#"
对于包含枚举值的列,将值强制转换为整数数据类型。例如:
"EnumColumn = 5"
字符串比较是否区分大小写由 DataSet 类的 CaseSensitive 属性的值来确定。但是,可以用 DataTable 类的 CaseSensitive 属性重写此值。