繁体   English   中英

计数SQL查询未返回期望值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM