下面是函数代码,该函数在被调用时,第一次能正常执行完所有代码,当执行第二遍时while循环里的语句就不能被执行了,跳出循环体了,各位帮忙看看是怎么回事。很急啊,分不够可以再加。Statement stmt = this.myConnection.createStatement();
String sql = "select subject,mailfrom,mailto,content from spool_mail where id='"+ mailid +"'";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next())
{

String subject = rs.getString("subject");
String mailfrom = rs.getString("mailfrom");
String mailto = rs.getString("mailto");
String content = rs.getString("content");  }
this.myConnection.commit();
rs.close();
rs = null;
stmt.close();
stmt = null;  this.myConnection在另外一个函数里面已经连接过了  

解决方案 »

  1.   

    oracle or sqlserver? 
    1.检查你的查询结果多于2条? 
    2 rs. beforeFirst();
    3 类和塬码不同步,重编译   
      

  2.   

    rs. beforeFirst(); 放到while前,
    以前碰到过oracle自动关闭连接的问题,你如果不是连oracle就不用考虑了 
      

  3.   

    连的是ORACLE数据库,你说的是在while前面加上rs. beforeFirst(); 
    如果是类和源码不同步怎么解决?
      

  4.   

    确认一下拼的sql句中,第一次和第二次的mailid是否一样ps:select不需要commit
      

  5.   

    在RS的记录数大于一,循环的次数应该是RS的记录数
      

  6.   


    是在while前面加上rs. beforeFirst();  类和源码不同步: 删除类文件,重新编译!  我一般遇到这种情况会“ 改变源码eg 增加一条 int temp = 0; 
    保存编译,在删除 int temp = 0;  再保存编译即可使类和源码同步
      

  7.   

    你用sqlplus 查一下看看返回多少记录! 
    你的驱动是不是匹配呢?