请教jdbc得简单问题,送分啦

ypchina 2002-05-31 12:43:32
请问Result is closed错误是怎么回事?
比如:
Result rs=Stmt.executeQuery(sql);
while(rs.next()) {
sql1="select ..........";
Result board_rs=Stmt.executeQuery(sql1);
就出现500 servlet exception
java.sql.SQLException: ResultSet is closed
求救!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
50 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
JK_10000 2002-06-02
  • 打赏
  • 举报
回复
试一试以下方法


Result board_rs
从循环中移出,在循环内执行:
sql1="select ..........";
board_rs=Stmt.executeQuery(sql1);
//……………
if (board_rs!=null) board_rs.close();
thebear810611 2002-06-02
  • 打赏
  • 举报
回复
你的第二个resultset是在while循环内部吗?如果是在内部的话,在进行第二个时第一个就会被自动关闭,这是垃圾回收机制的“功劳”
linxianlie 2002-06-01
  • 打赏
  • 举报
回复
声明rs的关键词错了,应该这样声明:

ResultSet rs,ResultSet board_rs;
c_crazyren 2002-06-01
  • 打赏
  • 举报
回复
用两个rs就行了。
zijianyi 2002-05-31
  • 打赏
  • 举报
回复
这样好象也不行,我试过,至少用sql server 2000不行


我解决的方法是把第一次查询的东西存数组.......方法有点笨,不过比较实用
Andrawu 2002-05-31
  • 打赏
  • 举报
回复
同意楼上。
salute 2002-05-31
  • 打赏
  • 举报
回复
在循环中使用另一个Statement!
Statement Stmt;
Statement Stmt1;
......
Result rs=Stmt.executeQuery(sql);
while(rs.next()) {
sql1="select ..........";
Result board_rs=Stmt1.executeQuery(sql1);
ypchina 2002-05-31
  • 打赏
  • 举报
回复
怎么加?我加了一个stmt1,还是不行,出错。
Statement Stmt1;
Stmt1=Connection.createStatement();
ResultSet board_rs=Stmt1.executeQuery(sql1);
不行,一执行查询就出错!
gqgqliu 2002-05-31
  • 打赏
  • 举报
回复
你写错了,是ResultSet,不是Result!!
sunharck 2002-05-31
  • 打赏
  • 举报
回复
嵌套循环最好使用两个stmt这样才可以,要不进入内循环后,将会使前一个关闭.
wjfxiao 2002-05-31
  • 打赏
  • 举报
回复
一个statement 只能又一个result
你只用了一个statement,第二局执行是,第一个result就关闭了.
你在床加一个statement,执行第二局的sql就行了

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧