请教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
求救!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
10 点赞 收藏 11
写回复
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);
不行,一执行查询就出错!
回复
sunharck 2002-05-31
嵌套循环最好使用两个stmt这样才可以,要不进入内循环后,将会使前一个关闭.
回复
gqgqliu 2002-05-31
你写错了,是ResultSet,不是Result!!
回复
wjfxiao 2002-05-31
一个statement 只能又一个result
你只用了一个statement,第二局执行是,第一个result就关闭了.
你在床加一个statement,执行第二局的sql就行了
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告