我有一个使用MySQL服务器的NetBeans应用程序。但每当我尝试从Select查询返回的ResultSet访问数据时,我会得到无效的游标状态错误,尽管代码在一段时间内(rsc.next())循环。代码是:
Statement stt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rsc = stt.executeQuery("Select timing,Monday from Comps_1_B where timing!='08 to 09'");
while (rsc.next()) {
if (rsc.getString(2).equals("")) {
timel.add(rsc.getRow() - 1);
rsc.next();
}
}
错误发生在rsc.getString()。 堆栈跟踪是:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3906)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5697)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:353)
at project_4year.Labtiming11.labtime(Labtiming11.java:191)
at project_4year.Main.newLaball(Main.java:832)
at project_4year.Main.lmain(Main.java:32)
at project_4year.MainPanel$4.run(MainPanel.java:470)
答案 0 :(得分:1)
你曾两次使用rsc.next()
。在while循环中删除一个。
答案 1 :(得分:0)
不要在if块中使用rsc.next();
。