关于两次输出ResultSet结果的问题

kekan 2007-05-07 05:52:29
原代码如下:
<label> 请选择待分析的用户A:
<select name="userlist" onChange="addphone(this);">
<option>*未选择*</option>
<%
/********进行查询*********/
try {
Connection con = DriverManager.getConnection(url,user,password);
Statement smt = con.createStatement();
ResultSet rst = smt.executeQuery(sqlyuju);
while(rst.next()){
out.println("<option value='" + rst.getString("username") + "'>" + rst.getString("username") + "</option>");
}
%>
</select>
用户B:
<select name="userlist2" onChange="addphone(this);">
<option>*未选择*</option>
<%
rst.beforeFirst();
while(rst.next()){
out.println("<option value='" + rst.getString("username") + "'>" + rst.getString("username") + "</option>");
}
rst.close();
smt.close();
con.close();
} catch(SQLException ex) {
out.println("数据库连接查询错误" + ex);
ex.printStackTrace();
}
%>
</select></label>

为什么在第二个列表框中无法再次显示ResultSet的内容,用了beforeFirst()、first()、previous()都不行,应该怎么做才好啊。
...全文
399 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kekan 2007-05-07
  • 打赏
  • 举报
回复
谢谢,问题解决。
luckydog2000 2007-05-07
  • 打赏
  • 举报
回复
Statement smt = con.createStatement();
改成
Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
就可以了。
kekan 2007-05-07
  • 打赏
  • 举报
回复
不明白,页面刷新和ResultSet内容有什么关系。
frilly 2007-05-07
  • 打赏
  • 举报
回复
因为第一个列表框的事件已经刷新了页面,
把对数据库的操作封装一个bean里,然后引用,不建议直接写在页面上,

81,091

社区成员

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

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