命名空间: System.Data
程序集: System.Data(在 System.Data.dll 中)
语法
VB
C#
C++
F#
JScript
以带有颜易做图分的格式查看复制到剪贴板打印
Public Property Expression As String
Get
Set
Public Property Expression As String
Get
Setpublic string Expression { get; set; }
public string Expression { get; set; }public:
property String^ Expression {
String^ get ();
void set (String^ value);
}
public:
property String^ Expression {
String^ get ();
void set (String^ value);
}member Expression : string with get, set
member Expression : string with get, set
属性值
类型: System ..::. String
用来计算列的值,或创建聚合列的表达式。表达式的返回类型由列的 DataType 来确定。
异常
异常 条件
ArgumentException 将 AutoIncrement 或 Unique 属性设置为 true。
FormatException 在使用 CONVERT 函数时,表达式的计算结果为一个字符串,但该字符串不包含可以转换成类型参数的表示形式。
InvalidCastException 在使用 CONVERT 函数时,所请求的强制转换不可能完成。有关可能的强制转换的详细信息,请参见下面一节中的 Conversion 函数。
ArgumentOutOfRangeException 在使用 SUBSTRING 函数时,起始参数超出范围。
- 或 -
在使用 SUBSTRING 函数时,长度参数超出范围。
Exception 在使用 LEN 函数或 TRIM 函数时,表达式的计算结果不是字符串。这包括计算结果为 Char 的表达式。
备注
Expression 属性的一个用途是创建计算出的列。 例如,若要计算税值,就要将单价乘以特定地区的税率。由于各地税率不同,不可能将单一税率放在一个列中;于是便用 Expression 属性来计算这个值,如下面这一部分中的 Visual Basic 代码所示:
DataSet1.Tables("Products").Columns("tax").Expression = "UnitPrice * 0.086"
第二个用途是创建聚合列。类似于计算出的值,聚合基于 DataTable 中的整个行集执行操作。 一个简单的示例就是计算该集中返回的行数。这便是您将用来计算特定销售人员所完成的交易数的方法,如下面的 Visual Basic 代码所示:
以带有颜易做图分的格式查看复制到剪贴板打印
DataSet1.Tables("Orders").Columns("OrderCount").Expression = "Count(OrderID)"
DataSet1.Tables("Orders").Columns("OrderCount").Expression = "Count(OrderID)"表达式语法
在创建表达式时,使用 ColumnName 属性来引用列。 例如,如果一个列的 ColumnName 是“UnitPrice”,而另一个是“Quantity”,则表达式将是:
"UnitPrice * Quantity"
说明
如果在表达式中使用了某个列,则该表达式就存在一个对该列的依赖项。重命名或移除依赖列时不会引发异常。当访问缺少了依赖项的表达式列时,将引发异常。
在为筛选器创建表达式时,用单引号将字符串括起来:
"LastName = 'Jones'"
如果列名称包含任何非字母数字字符、以数字开头或匹配(不分大小写)以下任意的保留字,则它需要特殊处理,如下面的段落中所述。
与
之间
子级
False
隶属
Is
Like
Not
Null
Or
父级
True
如果列名称满足上述条件之一,则它必须被包括在方括号中或在“`”(重音符)引号中。例如,若要在表达式中使用名为“Column#”的列,应写成“[Column#]”:
Total * [Column#]
或 "`列号`":
Total * `Column#`
如果列名称括在方括号中,则必须通过在所有“]”和“\”字符(不是任何其他字符)前添加反斜杠(“\”)字符来跳过这些字符。如果列名称括在重音字符中,则它不能包含任何重音字符。例如,名为“Column[]\”的列应写成:
Total * [Column[\]\\]
或
Total * `Column[]\`
用户定义的值
用户定义的值可以用在将与列值进行比较的表达式内。应将字符串值括在单引号中(字符串值中的每个单引号字符必须由前将其添加与另一单引号字符转义)。日期值应用井号 (#) 或单引号 (') 括起来,具体取决于数据提供程序。对于数值,允许使用小数和科学记数法。例如:
"FirstName = 'John'"
"Price <= 50.00"
"Birthdate < #1/31/82#"
对于包含枚举值的列,将值强制转换为整数数据类型。例如:
"EnumColumn = 5"
正在分析文本表达式
所有文本表达式必须采用固定的区域设置来表示。当 DataSet 分析并转换文本表达式时,它始终使用固定区域性,而不是当前区域性。
值用单引号引起来时,字符串文字被标识。例如:
'John'
Boolean 文本是 true 和 false;它们未在表达式中引用。
将 Integer 文本 [+-]?[0-9]+ 视为 System.Int32、 System.Int64 或 System.Double。 根据数量的大小, System.Double 可以丢失精度。 例如,如果文本中的号码是 2147483650, DataSet 将首先尝试将数字解析为一个 Int32。 因为数值太大,所有这不会成功。在这种情况下, DataSet 将把数字分析称一个 Int64,这种分析将会成功。 如果文本是一个大于 Int64 最大值的数,则 DataSet 将使用 Double 分析文本。
使用科学记数法的真实文本(如 4.42372E-30)使用 System.Double 进行分析。
不使用科学记数法但使用小数点的真实文本将被视为 System.Decimal。 如果数量超过了 System.Decimal 支持的最大值或最小值,则它被分析为 System.Double。 例如:
142526.144524 将转换为 Decimal。
345262.78036719560925667 将被视为 Double。
运算符
使用布尔值 AND、OR 和 NOT 运算符时允许串联。可以使用括号来组合子句和强制优先级。AND 运算符优先于其他运算符。例如:
(LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'
在创建比较表达式时,允许使用下列运算符:
<
>
<=
>=
<>
=
IN
LIKE
在表达式中还支持下列算术运算符:
“+”(加)
-(减号)
*(乘号)
/(除号)
%(模数)
字符串运算符
若要连接字符串,请使用 + 字符。DataSet 类的 CaseSensitive 属性的值确定字符串比较是否区分大小写。 但是,可以用 DataTable 类的 CaseSensitive 属性重写该值。
通配符
在 LIKE 比较中,* 和 % 两者可以互换地作为通配符。如果 LIKE 子句中的字符串包含 * 或 %,那么这些字符应包含在中括号([])中。如果子句中有括号,则每个括号字符都应包括在括号中(例如 [[] 或 []])。在模式的开头和结尾,或者在
补充:Web开发 , ASP.Net ,