你的rs取了两次,所以不对了。只能取一次,
最简单的办法,查两次数据库,
此外也可以定义个树组把值放进去就可以重复使用。
还有一种就是查数据库的ResultSet时带参数,让RS的指针可以回滚就可以取两次了。

解决方案 »

  1.   

    不好意思,刚才没看清楚就说话
    改一下这里看看成不成
    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);       //取出价钱
    }
      

  2.   

    : liutang2(Believe I Can Fly!)  还有一种就是查数据库的ResultSet时带参数能举个简单的例子吗?
      

  3.   

    把游标改成CONCUR_READ_ONLY试试!
    还有
    rs.next();
    price = rs.getInt(1);       
    应该改为
    if(rs.hasNext())
    {
      price = rs.getInt(1);   
      rs.next();
    }else
      continue;比较稳妥
      

  4.   

    首先,把
    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判断一下先