你的rs取了两次,所以不对了。只能取一次,
最简单的办法,查两次数据库,
此外也可以定义个树组把值放进去就可以重复使用。
还有一种就是查数据库的ResultSet时带参数,让RS的指针可以回滚就可以取两次了。
最简单的办法,查两次数据库,
此外也可以定义个树组把值放进去就可以重复使用。
还有一种就是查数据库的ResultSet时带参数,让RS的指针可以回滚就可以取两次了。
解决方案 »
- Struts1.2下测试action时不能加载spring配置文件
- 100分求sturts2 求和问题
- Tomcat Manager报401错误
- MS-SQLSERVER 中的bit类型如何在hibernate中映射?
- java.lang.IllegalStateException怎么解决?
- Tapestry和struts能否共存于同一框架中?
- 将数据从JSP的JAVA程序段中传送到JAVAScript中
- java项目部署
- 加急!在写入文本文件的时候怎么才能将再次输入的内容续写在原来的内容之后呀?不解!
- Unix平台JSP页面提交的中文问题~
- 請問Iterator是什麼,在什麼才會用到,請問關於這些類的中文參考資料在哪裡可以找到...
- "[Microsoft][ODBC 驱动程序管理器] 无效的游标状态"这是什么原因?在线等
改一下这里看看成不成
int price[]= new int[10];
for(int a=0; a<10;a++){
sql = "select 价格 from flower where 花名='"+flowers[i]+"'";
rs = smt.executeQuery(sql);
rs.next();
price[a] = rs.getInt(1); //取出价钱
}
还有
rs.next();
price = rs.getInt(1);
应该改为
if(rs.hasNext())
{
price = rs.getInt(1);
rs.next();
}else
continue;比较稳妥
smt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
换成:
smt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);然后,这段代码
rs.next();
price[a] = rs.getInt(1); 换成:
if(rs.next()){
price[a] = rs.getInt(1);
}
因为你不能确定rs是否查询到值,如果rs为空,即你没有查询到有效的值,那么用rs.next()就会出错了,所以你要用if判断一下先