我创建了一个简单的应用程序,该程序将数据库值与文本字段值进行比较,但是当我执行项目时,它会为我提供以下内容Exception:
Exception
java.sql.SQLException:[Microsoft] [ODBC驱动程序管理器]无效的光标状态
java.sql.SQLException
这是我正在使用的代码:
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); } }
这可能是什么原因Exception?
当你这样做s.executeQuery(),的初始位置ResultSet是 之前 的第一行。
s.executeQuery()
ResultSet
您必须将rs.next()其前进到第一行。
rs.next()
将您的ResultSet处理if ( s1.next() ) {}封闭在一个块中
if ( s1.next() ) {}