当我添加一个项目进行筛选时,似乎可以正常工作,但是我不想添加筛选器,即仅希望对该列求和。
我尝试传入string.empty和"",但没有成功:
object objColTotal;
objColTotal = _dataSetDataTable.Compute("Sum(Price)", "");
decimal tot = Convert.ToDecimal(objColTotal);
一个空字符串应该可以使用。
您始终可以使用您确定会包含所有记录的筛选器。
在十进制列上进行快速测试:
var dt = new DataTable();
dt.Columns.Add("DecCol1", typeof(decimal));
dt.Columns.Add("StrCol1");
dt.Rows.Add(new object[] { 1.1, "r1"});
dt.Rows.Add(new object[] { 2.2, "r2" });
dt.Rows.Add(new object[] { 3.3, "r3" });
object sum = dt.Compute("SUM(DecCol1)", "");
Console.WriteLine(sum);
我得到了正确的答案:6.6
注意两件事情
示例:
int Dones = int.Parse(dt.Compute("sum(Done)", "").ToString());
int InProgresss = int.Parse(dt.Compute("sum([In Progress])", "").ToString())