ResultSet rsTest = null;
    Statement stmt = null;
    String strSql = "select  sum(SendSm) from DepartmentCtrl ";
     try {
      ExecuteSQL execSql = new ExecuteSQL();
      execSql.setConnectDataBase_Access();
     stmt = execSql.getConn().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_READ_ONLY);
    rsTest = stmt.executeQuery(strSql);
      while(rsTest.next()){
               System.out.println(rsTest.getString(1));
      }
   }
    catch (SQLException eDissConnection) {
      System.out.println("测试出现如下异常:" + eDissConnection.getMessage());
    }返回测试出现如下异常:[Microsoft][ODBC 驱动程序管理器] 无效的游标状态我调试结果为:
本来sum返回一条语句,但实际上,从getrow()得到是38条,这个是表中的实际数据条数。
所以它能返回SendSm的和,但接返回第二条数据时出错。如果我把sum去掉,能返回所有的38条数据。
不知如何解决。

解决方案 »

  1.   

    不要      while(rsTest.next()){
                   System.out.println(rsTest.getString(1));
          }
    直接先做rs.next();
    再取int m=rs.getInteger(1);
      

  2.   

    String strSql = "select  sum(SendSm) as ss from DepartmentCtrl ";while(rsTest.next()){
                   System.out.println(rsTest.getInt("ss"));
          }
      

  3.   

    呵呵,很easy的问题,楼主怎么就没注意?