我正在尝试让一个方法返回一个count语句。
public int getSettingsCount(string UserId, string Setting)
{
int LastSetting;
//var user = new SqlDataLayer();
using (var db = new SQLite.SQLiteConnection(this.DBPath))
{
{
List<int> _setting = db.Query<int>("SELECT COUNT(*) FROM QTabSettings WHERE UserId = 1058 AND Setting = 'ServerDropdown' GROUP BY UserId;");
LastSetting = Convert.ToInt32(_setting.SingleOrDefault());
}
return LastSetting;
}
}
当我执行查询时,它返回正确的值(6)。但是我从上面的查询中得到了值(0)。
如何让方法将计数作为int返回?
答案 0 :(得分:1)
您正在使用LIMIT 1
但仍然使用List<int>
这是奇怪且不必要的。此外,由于它是count(*)
,因此不需要LIMIT 1
,因为结果将是标量数据。应该改为
int _setting = db.Query<int>("SELECT COUNT(*) FROM QTabSettings WHERE UserId = 1058 AND Setting = 'ServerDropdown';");
LastSetting = _setting;
答案 1 :(得分:0)
如果我理解你的问题,我认为这就是你想要的:
LastSetting = _setting.FirstOrDefault();
或:
LastSetting = _setting[0];