源自:http://msdn.microsoft.com/zh-cn/library/aa686007.aspx
函数
如果您希望列具有包含多个复杂逻辑的表达式,请尝试在其中嵌入某些函数。表达式可以包含诸如 Len、Iif, IsNull、Convert、Trim 以及 Substring 之类的函数。这些函数使得表达式的创建具有更大的灵活性。函数 Len 计算字符串的长度:
oDs.Tables["OrderDetail"].Columns.Add("LengthOfProductName", typeof(int), "Len(ProductName)");
函数 Iif 是迭代 If 语句,例如 Visual Basic® .NET 中的的 IIf。它采用三个参数并计算第一个参数以确定其是真还是假。如果第一个参数计算为真,则从 Iif 函数返回第二个参数,否则返回第三个参数。以下是基本的简洁 If...Then...Else 语句,可轻松地将该语句用于嵌入的表达式:
oDs.Tables["OrderDetail"].Columns.Add("Inventory", typeof(string), "Iif(Quantity < 10,'A few left', 'Plenty in stock')");
函数 IsNull 计算其第一个参数以查看其是否等于 System.DbNull。如果它计算为假,那么该函数会返回第一个参数的值。如果第一个参数计算为真,那么 IsNull 函数返回第二个参数的值。这可应用于您不希望出现空值并需要利用空字符串或占位符值来替换它们的时候,如下所示:
oDs.Tables["OrderDetail"].Columns.Add("DiscountString", typeof(string), "IsNull(Discount, '[null value]')");
函数 Trim 将尾部空白字符从字符串值中移除。函数 Convert 将表达式中值的数据类型更改为传递至 Convert 函数的第二个参数的数据类型。函数 Substring 返回传递至其的一部分字符串值,如它的 T-SQL 副本。Substring 可以用于裁剪长字符串以只显示限定的字符数。它可用于返回字符串的任何部分,并且在必要时可以与其他函数组合。
oDs.Tables["OrderDetail"].Columns.Add("ShortProduct", typeof(string), "Substring(ProductName, 1, 10)");
聚合和关系
示例:
oDs.Tables["Order"].Columns.Add("AvgQuantity", typeof(decimal), Avg(Child(Order2OrderDetail).Quantity)");
oDs.Tables["Order"].Columns.Add("AvgQuantity", typeof(decimal), Avg(Child.Quantity)");
下滚和计算
oDs.Tables["OrderDetail"].Columns.Add("OrderDate", typeof(string), "Parent.OrderDate");
int iCnt = (int)oDs.Tables["Order"].Compute("Count(OrderTotal)", "OrderTotal >= 1000"); lblTest.Text = iCnt.ToString() + " orders are at least $1000";