通配符
LIKE 比較中 * 和 % 可互換作為通配符。
轉義規則
- 字串含
* 或 % → 用 [] 轉義:[*]、[%]
- 字串含
[] → 用 [] 轉義:[[]、[]]
允許位置
- 模式開頭:
'*product*'、'*product'
- 模式結尾:
'product*'
- **不允許中間**:
'te*xt' ❌
父/子關係引用
| 引用類型 | 語法 | 說明 |
| 父表欄位 | Parent.Price | 引用父表 Price 欄位 |
| 子表欄位 | Child.Price | 需在聚合函數中使用(子關係可返回多行) |
| 多子表指定 | Child(RelationName).Column | 如 Child(Customers2Orders).Quantity |
聚合函數
| 函數 | 說明 |
| Sum | 求和 |
| Avg | 平均 |
| Min | 最小值 |
| Max | 最大值 |
| Count | 計數 |
| StDev | 統計標準差 |
| Var | 統計方差 |
聚合使用範例
// 沿關係聚合
Avg(Child.Price)
Avg(Child(Orders2Details).Price)
// 單表聚合
Sum(Price)
Count(*)
RowFilter 綜合範例
// 模糊查詢
dv.RowFilter = "ProductName LIKE '*widget*'";
// 父子關係查詢
dv.RowFilter = "Parent.Category = 'Electronics'";
// 聚合條件
dv.RowFilter = "Sum(Child.OrderDetails.Quantity) > 100";
// 組合條件
dv.RowFilter = "Price > 100 AND Parent.Category = 'Electronics' AND Child(Orders2Details).Quantity > 10";
注意事項
- RowFilter 語法與 SQL WHERE 子句高度相似但非完全相容
- 大小寫敏感性取決於
DataTable.CaseSensitive 屬性
- 複雜查詢效能不如資料庫引擎,大數據量建議下推至 DB