我正在用C#编写一个带Xamarin的小程序,我需要将表中一列的值大于0 ......目前我用以下方法实现了这个:
var ent = conn.Table<Transaction>().Where(t => t.price > 0);
entLabel.Text = (ent.Sum(t => t.price)).ToString();
但是我想用SELECT脚本获得相同的结果。我试过这个:
var ent = conn.Query<Transaction>("SELECT SUM(price) FROM Transaction WHERE price > 0");
entLabel.Text = ent.ToString();
可悲的是,结果不是数字,而是像“System.Collection.something.blahblah”这样的字符串。
我错过了什么吗?我搜索了文档和其他网站中的语法(粘贴在下面),它看起来和我的一样。
SELECT SUM(column_name)
FROM table_name
WHERE condition;
答案 0 :(得分:1)
而不是:
var ent = conn.Query<Transaction>("SELECT SUM(price) FROM Transaction WHERE price > 0");
使用:
var ent = conn.ExecuteScalar<int> ("SELECT SUM(price) FROM Transaction WHERE price > 0");
ExecuteScalar
用于从数据库返回标量值。