日期:2014-05-20  浏览次数:20614 次

一个关于调用数据库的问题
代码如下:

String   sql   =   "SELECT   *   FROM   Process_condition   WHERE   (process_length   =   (SELECT   MAX(process_length)   AS   process_length   FROM   Process_condition   WHERE   aggregate_name   =   'S1 '))   AND   (aggregate_name   =   'S1 ')   and   (process_length <> 0)   ORDER   BY   process_id ";

String   ok   =   db.executeMe(sql);

if(db.rs.next()==false){
                System.out.println( "规则一无法选择 ");
        }
else{
            while(db.rs.next()){
            process_id   =   db.rs.getInt( "process_id ");
            System.out.println( "规则一选择的是 "+process_id);
      }  
        }
问题是,我的本意是如果查不到数据,打印“规则无法选择”,否则就进入while,进行数据库的查询。
但是现在这样子,也没有打印,也没有查数据库。。。。请指点,谢谢

------解决方案--------------------
查出来只有一条记录。你先在if中调用了rs.next()到最后一条记录了,然后又再while中就不进入循环了。结果就是都不打印。
------解决方案--------------------
LS正解
if(db.rs.next()==false){
System.out.println( "规则一无法选择 ");
}
else{
do{

process_id = db.rs.getInt( "process_id ");
System.out.println( "规则一选择的是 "+process_id); //这里改下就可以了
}
while(db.rs.next());