我创建了一个简单的应用程序,用于将数据库值与文本字段值进行比较,但是当我执行项目时,它为我提供了以下Exception
:
java.sql.SQLException
:[Microsoft] [ODBC驱动程序管理器]无效的游标状态
这是我正在使用的代码:
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
?
答案 0 :(得分:5)
当您执行s.executeQuery()
时,ResultSet
的初始位置<第一行之前 。
您必须rs.next()
将其推进到第一行。
将您的ResultSet
处理封装在if ( s1.next() ) {}
块
答案 1 :(得分:0)
你需要使用next函数将Resultset指针指向第一行,然后在数据库值和textField值之间进行比较 我希望这有用。
答案 2 :(得分:-1)
试试这样..
ResultSet s1=s.executeQuery();
String database=null;
if(s1.next())
{
database =s1.getString(1);
}