Compute方法支持表达式,并且支持可以在表达式内部使用的
我正在尝试实现:
dtGroupedBy.Compute("sum(POWER)",dvv.RowFilter);
这是一个错误的结果:
聚合函数Sum((和Type:String的用法无效。
我们如何将其转换为其列类型??
CONVERT function
。
例如,您可以像一样计算列的总和
MyDataTable.Compute("Sum(Convert(your column name, 'Data Type'))")
这将取决于您如何创建DataTable
。如果它直接来自SQL,那么您应该考虑更改SQL本身,以便在获取POWER列时对其进行转换。
但是,如果值首先应该始终是数字,我强烈建议您重新访问数据库模式——如果可能的话,更改列类型会更干净。
不能在字符串字段上使用Sum()
聚合函数。
有两件事你可以做
- 重新定义数据库中现有的列项目(或架构(为数字字段。(推荐(
- 对传递给聚合函数的数据执行
System.Int32
转换。所以你可以做以下事情
dtGroupedBy.Compute("sum(CONVERT("+功率+",'System.Int32'((",dvv.RowFilter(;