[英]Count SQL Query not returning expected value
我试图让一个方法返回一个计数语句。
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的方法?
您正在使用LIMIT 1
并且仍在使用List<int>
,这很奇怪而且不必要。 此外,由于它是count(*)
因此不需要LIMIT 1
因为结果将是标量数据。 应该将其更改为
int _setting = db.Query<int>("SELECT COUNT(*) FROM QTabSettings WHERE UserId = 1058 AND Setting = 'ServerDropdown';");
LastSetting = _setting;
如果我正确理解了您的问题,我想这就是您想要的:
LastSetting = _setting.FirstOrDefault();
要么:
LastSetting = _setting[0];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.