【问题标题】:Android Select Count() Query does not workAndroid Select Count() 查询不起作用
【发布时间】:2020-12-27 01:10:23
【问题描述】:

我正在开发我的 Android 移动应用程序。 现在这段代码工作正常

    ArrayList<adapter_car> carlist = new ArrayList<>();
    ConnectionClass connectionClass = new ConnectionClass();
    Connection con = connectionClass.CONN();
    query = "SELECT * FROM [GatheringareaDB].[dbo].[cars] WHERE car_id_ga_in_cars = '"+v1id+"'";
    Statement stmt = con.createStatement();
    ResultSet res = stmt.executeQuery(query);

问题是我无法将 * 更改为其他任何内容(不是列名,也不是 count(*) 等)。

我想要的是像这样计算一些列

SELECT([car_sog_car]) , Count([car_sog_car]) 
FROM [GatheringareaDB].[dbo].[cars]
WHERE car_id_ga_in_cars = v1id

【问题讨论】:

    标签: java android select count


    【解决方案1】:

    您的语法已关闭。如果您只想获取整个表中的记录数,考虑到您的限制,请使用:

    SELECT COUNT(*) AS cnt
    FROM [GatheringareaDB].[dbo].[cars]
    WHERE car_id_ga_in_cars = v1id;
    

    对于您的 Android 代码,您应该在此处使用准备好的语句:

    Connection con = connectionClass.CONN();
    query = "SELECT COUNT(*) AS cnt FROM [GatheringareaDB].[dbo].[cars] WHERE car_id_ga_in_cars = ?";
    PreparedStatement stmt = con.createStatement(query);
    stmt.setString(1, v1id);
    ResultSet res = stmt.executeQuery();
    if (res.next()) {
        int count = res.getInt("cnt");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 2020-08-15
      相关资源
      最近更新 更多