我为什么不能把从数据库读出来的字符串赋值给String的变量String str=rs.getString("name");总是出错.但是能直接输出System.out.println(rs.getString("name"))急啊 我在线等 哪位帮我解决一下 33XXXXXX!

解决方案 »

  1.   

    错误提示 Exception in thread "main" java.sql.SQLException:after end of result set
    .......
      

  2.   

    可能是字段的名称不是 name
      

  3.   

    可能  resultSet   已经被关闭
      

  4.   

    不是rs已经关闭,而是rs已经滚到头了。肯定是你的循环控制有问题,贴代码来看。
      

  5.   

    从错误提示很明显可以看出来你的
    ResultSet类型的rs指针已经到了最后
    所以就会出现上面的错误楼主可以可以把代码贴出来,帮你看看
      

  6.   

    出现这种错误还有可能一种原因是:
    你的while(rs.next())   
      {.....}   
      中又用了几个ResultSet ,
    也就是说你可能没使用连接查询直接这样在rs里面嵌套rs造成这个错误  
    这种情况:
    几个ResultSet要独立,不要同时引用同一个ResultSet,也就是说不能嵌套好几个ResultSet     
    几个Statement要独立,不要同时引用同一个Statement
      

  7.   

    我为什么不能把从数据库读出来的字符串赋值给String的变量String str=rs.getString("name");总是出错.但是能直接输出System.out.println(rs.getString("name")) 
    改成String str=rs.getString("name")+"";试试
      

  8.   

    after end of result set 
    这是什么意思不懂啊??
    在结果集之后
    就是说你结果集如果有3个,你循环到第4个了,当然会错
      

  9.   

    循环控制出问题吧,才会导致resultset滚完
      

  10.   

    可能是while(rs.next())中调用了两次rs.getString("name");你把System.out.println(rs.getString("name")) 
    去掉试一下或者设置一个变量保存rs.getString("name");比如
    String str= rs.getString("name");
    System.out.println(str);System.out.println(rs.getString("name")) //不要再调用rs.getString("name")
      

  11.   

    把代码贴出来,你这问题可能就是ResultSet没处理好~
      

  12.   

    String str=rs.getString("name"); 这句话本身是没有错误的,如果name这个字段的确存在的话。从你提供的错误描述来看,有两种可能:
    1. ResultSet已经到最后了
    2. 没有记录符合你的查询条件,所以结果集是空的所以一般在使用ResultSet之前(或循环之前),要判断它是否为空。
      

  13.   

    String str=rs.getString("name");
    System.out.println(rs.getString("name"));
    这样就会出问题,同一列数据只能调用一次
    String str=rs.getString("name");
    System.out.println(str);
    改成这样就OK了,java里头有这个问题,VC里头就没有了,反复调用几次都没问题,VC用惯了的程序员用java的确会出现很多头疼的问题。