if(rs.next())
{
   strTmpUser=rs.getString("书名");
}

解决方案 »

  1.   

    你要把执行完后的光标在下次调用的时候放到最前面,RS.FIRST();
    再调用RS.NEXT();
      

  2.   

    在使用ResultSet的getXXX()方法前,要先调用ResultSet的next()方法,next()方法返回值为boolean类型,并且要在next()返回为true时再使用getXXX()方法才不会出错。
    你的程序应如下:
    rs=stmt.executeQuery(SQL);
    if(rs.next())
    {
       strTmpUser=rs.getString("书名");
    }
    textArea1.append(strTmpUser+"\n");
    rs.close();
      

  3.   

    再详细的解释一下:
    当得到ResultSet对象后,最初其内部光标指向第一个数据之前,也就是指向没有数据得地方,使用next()方法将光标移动一个位置才是指向第一个数据的位置,每次要获得下一个数据都要使用next()方法将光标移动到下一个位置,这样才能正确取得数据。
      

  4.   

    这是非常感谢大家,竟然犯了这么低级的错误,在我原先的程序里是有用rs.next()的,把它改过之后却忘了,呵呵。