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?
When you do
s.executeQuery(), the initial position of theResultSetis BEFORE the first row.You have to do
rs.next()to advance it to the first row.Enclose your
ResultSetprocessing in aif ( s1.next() ) {}block