Razor Webmatrix中列的和

Razor Webmatrix中列的和,razor,sql-server-ce,webmatrix,Razor,Sql Server Ce,Webmatrix,我找了太多时间了。是我能找到的最接近的,但无法让它工作 我有一个名为“ServiceEntered”的表,我需要在页面上显示“Price”列的总和。我也尝试更改表中的字段类型,但没有成功 我正在使用以下代码: decimal money = 0.00m; var prices = "SELECT SUM(Price) FROM ServiceEntered"; var db = Database.Open("OMD"); var result = db.QuerySingle(prices

我找了太多时间了。是我能找到的最接近的,但无法让它工作

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

我正在使用以下代码:

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”。

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

var prices = "SELECT SUM(Price) FROM ServiceEntered";
var db = Database.Open("OMD");
var result = db.QueryValue(prices);
然后在您的页面中,您可以使用:

@result

该列的数据类型是什么?我现在已将其设置为浮动。这是为了钱,但我听说这会引起问题。你试过把它改成十进制吗?在WebMatrix附带的mysql compact中,它没有提供这个选项,这不是mysql。这是SQL精简版。你应该使用数字,并将精度和刻度设置为19和4。你真了不起,我的朋友,这是你第二次帮助我。非常感谢你!