2

我已经搜索了太多小时。从表中的所有行计算 TotalAmount 与我能找到的一样接近,但无法让它工作。

我有一个名为“ServiceEntered”的表,我需要在页面上显示“价格”列的总和。我也尝试更改表中的字段类型,但没有成功。

我正在使用这段代码:

decimal money = 0.00m; 
var prices = "SELECT SUM(Price) FROM ServiceEntered"; 
var db = Database.Open("OMD"); 
var result = db.QuerySingle(prices); 
money = Convert.ToDecimal(result);

@money在页面中。

它给了我这个错误:无法将“WebMatrix.Data.DynamicRecord”类型的对象转换为“System.IConvertible”类型。

4

1 回答 1

2

您使用的 SQL 是正确的。但是,QuerySingle 方法的返回类型是具有从查询中的数据库列动态生成的属性的对象。您没有 - 您的 SQL 生成的表达式(SUM 函数的结果)也没有任何别名。事实上,由于您只是从数据库中检索一个标量值,因此您应该改用QueryValue。试试这个:

var prices = "SELECT SUM(Price) FROM ServiceEntered";
var db = Database.Open("OMD");
var result = db.QueryValue(prices);

然后在您的页面中,您可以使用:

@result
于 2013-09-04T16:09:55.980 回答