0
public int countBookings() throws SQLException{

    ResultSet rs=null;
    PMDBController db=new PMDBController();
    int rowCount=0;

    db.getConnection();

    String dbQuery="SELECT COUNT(User) AS UserCount FROM INSTRUCTORBOOKING WHERE USER ='"+instructorId+"'";

    rs=db.readRequest(dbQuery);

    try{
        if(rs.next()){
            instructorId=rs.getString("UserCount");
        }
    }catch(Exception e){
        e.printStackTrace();
    }

    rs.last();
    rowCount=rs.getRow();
    db.terminate();

    return rowCount;
}

基本上这个方法应该做的是计算从数据库中获取的行数。但是,无论里面有什么,它总是返回 1。帮助!

4

3 回答 3

1

您的查询似乎有问题。由于您只选择 1 个用户,因此您将始终获得 1 个计数。

"SELECT COUNT(User) AS UserCount FROM INSTRUCTORBOOKING WHERE USER ='"+instructorId+"'"

尝试删除您的 WHERE 子句?也许这不是您想要的,但我们无法仅从一个查询中看到您的数据模型。

于 2013-02-01T11:07:19.127 回答
0

rowCount = rs.getInt("UserCount");而不是instructorId = rs.getString("UserCount");会做的伎俩。或者换句话说——你读到了行数,但读到了变量instructorId。

于 2013-02-01T11:08:58.753 回答
0

行数将始终为 1。这是计数,即您需要查看的该行的值,因为您的查询旨在返回行数而不是实际行数。

SELECT COUNT(User) AS UserCount FROM INSTRUCTORBOOKING WHERE USER ='"+instructorId+"'"

您错误地将行数解释为您要查找的计数。

于 2013-02-01T11:20:46.453 回答