Java 为什么我从未关闭过任何一个结果集,却收到了“结果集已关闭”错误

Java 为什么我从未关闭过任何一个结果集,却收到了“结果集已关闭”错误,java,jdbc,connection,resultset,sqlexception,Java,Jdbc,Connection,Resultset,Sqlexception,我在我的代码中有这个错误,并且已经彻底地检查和编辑了它,但是我仍然遇到同样的问题。我还使用了多个resultSet和语句,但出现了相同的错误。下面是我得到的错误: "Database Connected with Current Date 20130221 java.sql.SQLException: ResultSet is closed at sun.jdbc.odbc.JdbcOdbcResultSet.checkOpen(Unknown Source) a

我在我的代码中有这个错误,并且已经彻底地检查和编辑了它,但是我仍然遇到同样的问题。我还使用了多个resultSet和语句,但出现了相同的错误。下面是我得到的错误:

    "Database Connected with Current Date 20130221
    java.sql.SQLException: ResultSet is closed
    at sun.jdbc.odbc.JdbcOdbcResultSet.checkOpen(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcResultSet.next(Unknown Source)
    at UNSUB.main(UNSUB.java:78)"
Press any key to continue . . .

请问原因是什么?我现在不知道有什么解决方案。

异常,
java.sql.SQLException:ResultSet已关闭
表示您的代码已经关闭了结果集对象 您正在使用,或者更可能的是,您的代码已经重新执行或关闭了 生成结果集。根据JDBC规范,这些操作中的任何一个都将关闭任何
语句的结果集。

异常,
java.sql.SQLException:ResultSet已关闭
表示您的代码已经关闭了结果集对象 您正在使用,或者更可能的是,您的代码已经重新执行或关闭了 生成结果集。根据JDBC规范,这些操作中的任何一个都将关闭任何

语句的结果集。

是否调用了ResultSet上的方法
next()
??如果没有,这可能是您出现错误的原因。

您是否调用了结果集上的方法
next()
??如果您没有,这可能是您出现错误的原因。

只有在此处发布代码,我们才能提供帮助。请发布代码。请注意,当语句或连接关闭时,结果集将关闭。结果集取决于语句,而语句又取决于连接。请仅共享代码段(从
resultSet
中提取数据的代码段),好吗。没有人对代码的其余部分感兴趣。只有在我们能够提供帮助的情况下,才在此处发布代码。请发布代码。请注意,当语句或连接关闭时,结果集将关闭。结果集取决于语句,而语句又取决于连接。请仅共享代码段(从
resultSet
中提取数据的代码段),好吗。没有人对代码的其余部分感兴趣。是的,我调用了.next()方法并更改了语句名。如果需要,我愿意分享代码。感谢问题中的stacktrace清楚地显示已调用
next()
。请不要注意正在调用的next()方法。您似乎总是忘记关闭单引号。在执行stmt3时,您遗漏了结尾处的
,在执行delete语句时,您遗漏了双引号。检查一下,让我知道它是否有效。哦!很抱歉。在消息框中编辑时出现打字错误。这不是我的问题。我的代码编译并运行,但后来抛出异常(在运行时)。谢谢,我调用了.next()方法并更改了语句名。如果需要,我愿意分享代码。感谢问题中的stacktrace清楚地显示已调用
next()
。请不要注意正在调用的next()方法。您似乎总是忘记关闭单引号。在执行stmt3时,您遗漏了结尾处的
,在执行delete语句时,您遗漏了双引号。检查一下,让我知道它是否有效。哦!很抱歉。在消息框中编辑时出现打字错误。这不是我的问题。我的代码编译并运行,但后来抛出异常(在运行时)。谢谢你的回复。在代码中,我有一个嵌套的resultSet,其中有一个不同的语句,但出现了错误。共享代码,这将有助于指出确切的错误块。
rs1=stmt2.executeQuery(“从t1中选择cnt,其中num=”+str2+”);rs1.next();cnt=rs1.getInt(“cnt”);if(cnt>0){rs2=stmt3.executeQuery(“select*fromt1,其中num='123”);while(rs2.next()){reg_date=rs2.getString(“reg”);ins1=stmt3.executeUpdate(“INSERT INTO t2([num])值(“+str2+”)”)”);Thread.sleep(10);ins2=stmt3.executeUpdate(“delete fromt1,其中num='+str2+”;}
感谢您的回复。在代码中,我有一个嵌套的结果集,其中有一个不同的语句,但仍然出现错误。共享代码,这将有助于指出确切的错误块。
rs1=stmt2.executeQuery(“从t1中选择cnt,其中num=”“+str2+””);rs1.next();cnt=rs1.getInt(“cnt”);if(cnt>0){rs2=stmt3.executeQuery(”选择*from t1,其中num='123”);while(rs2.next(){reg_date=rs2.getString(“reg”);ins1=stmt3.executeUpdate(“插入t2([num])值(“+str2+”)”)”);Thread.sleep(10);ins2=stmt3.executeUpdate(“从t1中删除,其中num='+str2+”);}