if(result.next()){
    //如果结果集中还有数据,则调用getInt方法取得结果集中的第一个记录。赋给count
   count = result.getInt(1);
   result.close();
}用的是mysql数据库,里面有三条数据,count的结果是1;三条记录,count的结果应该是3才对啊,请问大家,这个怎么理解

解决方案 »

  1.   

    是你的SQL写的有问题吧,,,,
    getInt(1)是取得当前行的第二列的值,
      

  2.   

    select * from news order by datetime desc 这是查询的sql语句,getInt(1)取出来的是第一列的数据啊,我第二列是varchar类型的
      

  3.   

    楼主的循环写的有问题吧用if只能走一次的用下面这个试试
    while(result.next()){  
            //如果结果集中还有数据,则调用getInt方法取得结果集中的第一个记录。赋给count 
          count   =   result.getInt(1); 
          result.close(); 

      

  4.   


    你这是取每行的第一列的数据, 而不是计算有多少数据行。 int count = 0;
     while(result.next()){
      count ++;
    }这才是统计数据行的
      

  5.   

    如果只是要获取一个count,直接sql里count就行了,何必要把数据都查询出来,结果你却不用它们呢select count(*) from news
      

  6.   

    不知道你什么需求 
      result.close(); 应该放循环外面吧
      

  7.   

    result.close();读了一条数据,结果集合就给你清空了。怎么可能跑出三条来?
      

  8.   

    你看看你的count在你取的sql语句中的哪一列
      

  9.   

    if(result.next()){ 
            //如果结果集中还有数据,则调用getInt方法取得结果集中的第一个记录。赋给count 
          count   =   result.getInt(1); 
          result.close(); 

    你的result是ResultSet,ResultSet  的机制是 你关闭了的话就不能再读取了  当你读了第一条记录的时候,
    你关闭了result,  所以result.next()为false
      

  10.   

    补充下  如果你想读出3条了  result.close(); 
    放在if和while循环的外面