使用rs.next()时无效的游标状态

时间:2015-04-10 04:24:38

标签: java mysql netbeans

我有一个使用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)

2 个答案:

答案 0 :(得分:1)

你曾两次使用rsc.next()。在while循环中删除一个。

答案 1 :(得分:0)

不要在if块中使用rsc.next();