DataColumn.Expression屬性

       下面的示例在 DataTable 中創建三個列。第二和第三列包含表達式;第二列使用可變稅率計算稅款,第三列將計算的結果添加到第一列的值。結果表顯示在 DataGrid 控件中。

 1 private void CalcColumns()
 2 {
 3     DataTable table = new DataTable ();
 4  
 5     // Create the first column.
 6     DataColumn priceColumn = new DataColumn();
 7     priceColumn.DataType = System.Type.GetType("System.Decimal");
 8     priceColumn.ColumnName = "price";
 9     priceColumn.DefaultValue = 50;
10      
11     // Create the second, calculated, column.
12     DataColumn taxColumn = new DataColumn();
13     taxColumn.DataType = System.Type.GetType("System.Decimal");
14     taxColumn.ColumnName = "tax";
15     taxColumn.Expression = "price * 0.0862";
16      
17     // Create third column.
18     DataColumn totalColumn = new DataColumn();
19     totalColumn.DataType = System.Type.GetType("System.Decimal");
20     totalColumn.ColumnName = "total";
21     totalColumn.Expression = "price + tax";
22 
23     // Add columns to DataTable.
24     table.Columns.Add(priceColumn);
25     table.Columns.Add(taxColumn);
26     table.Columns.Add(totalColumn);
27 
28     DataRow row = table.NewRow();
29     table.Rows.Add(row);
30     DataView view = new DataView(table);
31     dataGrid1.DataSource = view;
32 }

 

  1.  在創建表達式時,使用 ColumnName 屬性來引用列。例如,如果一個列的 ColumnName 是“UnitPrice”,而另一個是“Quantity”,則表達式將是:"UnitPrice * Quantity"。 

  2.  在爲篩選器創建表達式時,用單引號將字符串括起來: "LastName = 'Jones'" 

  3.  用戶定義的值可以用在將與列值進行比較的表達式內。字符串的值應括在單引號內。日期值應放在磅符號 (#) 內。對於數值,允許使用小數和科學記數法。

      例如:"FirstName = 'John'"     "Price <= 50.00"     "Birthdate < #1/31/82#" 

      對於包含枚舉值的列,將值強制轉換爲整數數據類型。例如:"EnumColumn = 5"

  4. 通配符

      在 LIKE 比較中,* 和 % 兩者可以互換地作爲通配符。如果 LIKE 子句中的字符串包含 * 或 %,那麼這些字符應用中括號([])對其進行轉義。如果子句中有中括號,那麼中括號字符應用中括號對其進行轉義(例如 [[] 或 []])。在模式的開頭和結尾,或者在模式的結尾,或在模式的開頭,都允許使用通配符。例如:

      "ItemName LIKE '*product*'"

      "ItemName LIKE '*product'"

      "ItemName LIKE 'product*'"

     在字符串的中間不允許使用通配符。例如,不允許 'te*xt'。

  5.  父/子關係引用 

       通過在列名稱前面加 Parent,就可以在表達式中引用父表。例如,Parent.Price 引用父表的名爲 Price 的列。

       通過在列名稱前面加一個 Child,就可以在表達式中引用子表中的列。但是,因爲子關係可以返回多行,所以必須在聚合函數中包括對子列的引用。例如,Sum(Child.Price) 將返回子表中名爲 Price 的列的總和。

    如果某個表有多個子表,則語法是:Child(RelationName)。例如,如果某個表有兩個子表,它們的名稱分別爲 Customers 和 Orders,並且 DataRelation 對象被命名爲Customers2Orders,則引用將爲:Avg(Child(Customers2Orders).Quantity)

  6. IsNull 

      例如:myDataColumn.Expression="IsNull(price, -1)"

  7. IIF 

       例如:myDataColumn.Expression = "IIF(total>1000, 'expensive', 'dear')

  8. SubString 

     格式: SUBSTRING(expression, start, length)

     myDataColumn.Expression = "SUBSTRING(phone, 7, 8)"

  9. Len 

     myDataColumn.Expression="Len(ItemName)"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章