我搜索了太多时间。 Calculate TotalAmount from all Rows in Table尽可能接近但无法让它发挥作用。
我有一个名为“ServiceEntered”的表,我需要在页面上显示“Price”列的SUM。我试图改变表中的字段类型,但没有成功。
我正在使用此代码:
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'。
答案 0 :(得分:2)
您使用的SQL是正确的。但是,QuerySingle方法的返回类型是一个对象,其属性是从查询中的数据库列动态生成的。你没有 - 你的SQL生成的表达式(SUM函数的结果)也没有任何别名。实际上,由于您只从数据库中检索标量值,因此应使用QueryValue。试试这个:
var prices = "SELECT SUM(Price) FROM ServiceEntered";
var db = Database.Open("OMD");
var result = db.QueryValue(prices);
然后在您的页面中,您可以使用:
@result