java.sql.SQLException: Exhausted Resultset error

28,198

Solution 1

Try as

if (rs! = null) { 
 while (rs.next()) {
  returnValue = rs.getString("display_name");
}
......

Solution 2

Try:

returnValue = rs.next() ? rs.getString("display_name") : null;

You don't need to check if the rs is null. It won't be - assuming the executeQuery() returned rather than raising an exception. (Though the returned result set might have 0 rows).

You also don't need to loop over the result set, assuming you really know that you expect back a single row. (Though, given the query, that seems unlikely.)

Share:
28,198
user2335123
Author by

user2335123

Updated on September 23, 2020

Comments

  • user2335123
    user2335123 over 3 years

    I'm facing the problem with this exception java.sql.SQLException: Exhausted Resultset in following code. I'm sure my query returns only one value. Even If I don't use rs.next(); it throws the error java.sql.SQLException: ResultSet.next was not called. Could you please help?

    FYI, I'm using the another result set in main where this menthod from another class is called. will it affect?

    Thanks

    public static String getdispname(Connection conn, String resname) 
    throws SQLException, Exception {
    
                //String resname = "";
                String returnValue = "";
                String querystring = "";
    
                //Query to select the displayname from resid
    
                querystring += "select distinct display_name";
                querystring += " from cust_rally_team_member";
                querystring += " where display_name like '%"+ resid +"%'";
    
                // Create select statement
                Statement stmt = conn.createStatement();
    
                try {
                    // Execute statement
                    ResultSet rs = stmt.executeQuery(querystring);
                    if (rs!= null) { 
                while (rs.next()) {
                returnValue = rs.getString("display_name");
                } catch (SQLException ex) {
                    throw new SQLException(ex);
                } catch (Exception ex) {
                    throw new Exception(ex);
                }
                // Close statement
                finally {
                    stmt.close();
                }
    
                return returnValue;