在程序中,用完一个result后,先关闭它。想用的时候我想再开一个:ResultSet result1=stm.executeQuery("select id1 from forum where previous=\'"+topic_id+"\'");。
可是却出现如下提示:java.sql.SQLException: ResultSet is closed
请教各位?
...全文
80130打赏收藏
java.sql.SQLException: ResultSet is closed 什么意思啊?
在程序中,用完一个result后,先关闭它。想用的时候我想再开一个:ResultSet result1=stm.executeQuery("select id1 from forum where previous=\'"+topic_id+"\'");。 可是却出现如下提示:java.sql.SQLException: ResultSet is closed 请教各位?
但是改成这样:Statement stm2=con.createStatement();
ResultSet result2=stm2.executeQuery("select id1 from forum where previous=\'"+topic_id+"\'");
结果还是错的,出现如下提示:java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。
是不是如: acefr()和 lionlxz(狮兔) 所说的是数据类型所以不行呢,该如何解决!!
PreparedStatement stm2=con.prepareStatement("select id1 from forum where previous=?");
stm2.setString(1,""+topic_id);
ResultSet result2=stm2.executeQuery();
取代 //ResultSet result2=stm.executeQuery("select id1 from forum where previous=\'"+topic_id+"\'");
通过了。 现在又见到 biggie(飞碟) 这样说,因该是这样的吧。
to acefr() :
谢谢,可是我里的 ResultSet result2=stm.executeQuery("select id1 from forum where previous=\'"+topic_id+"\'"); 这句话,是要在上一个的结果集里的程序块里的if(result.next())
{
...
(放在这里的)
....
}