java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state

22,225

When you do s.executeQuery(), the initial position of the ResultSet is BEFORE the first row.

You have to do rs.next() to advance it to the first row.

Enclose your ResultSet processing in a if ( s1.next() ) {} block

Share:
22,225
Admin
Author by

Admin

Updated on July 25, 2022

Comments

  • Admin
    Admin almost 2 years

    I created a simple application that compares a database value with a textfield value, but when I execute the project it gives me the following Exception:

    java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state

    This is the code I'm using:

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
       String dataSource ="testDb";
       String U="jdbc:odbc:"+dataSource;
       try {
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          Connection con=DriverManager.getConnection(U,"","");
    
          PreparedStatement s=con.prepareStatement("Select * from student");
          ResultSet s1=s.executeQuery();
    
    
          String textField;
          textField=jTextField1.getText();
          String database =s1.getString(1);
          if(textField.equals(database)) { 
             System.out.println("ok");
          } else {
             System.out.println("Not ok");
          }
       } catch(Exception ex) {
          System.out.println("THE EXCEPTION IS"+ex);
       }
    }
    

    What could be the cause if this Exception?