看你连接数据库的方式是什么
如果是jdbc:odbc就会出错

解决方案 »

  1.   

    jsp中的记录集是单向的,不能rs.first()
    我以前也遇到过这种问题,问了很多人,都没办法,最后只好rs.close()
    然后在连接一次数据库.
    如果你不想多次创建数据库连接,你就一次把所有的你需要的数据读出来,然后慢慢折腾.
      

  2.   

    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);如果直接createStatement(),得到的Result是TYPE_FORWARD_ONLY的,不能first, last
      

  3.   

    kkhui(jacky) 
    回答非常正确
      

  4.   

    那么这个class应该怎么改呢?
    package bbs;
    import java.sql.*;public class conn{
    String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String sConnStr = "jdbc:odbc:bbs";
    Connection conn = null;
    ResultSet rs = null;public conn(){
    try {
    Class.forName(sDBDriver); 
    }
    catch(java.lang.ClassNotFoundException e) {
    System.err.println("bbsreg(): " + e.getMessage());
    }
    }public ResultSet executeQuery(String sql) {
    rs = null;
    try {
    conn = DriverManager.getConnection(sConnStr); 
    Statement stmt = conn.createStatement();
    rs = stmt.executeQuery(sql);

    catch(SQLException ex) { 
    System.err.println("aq.executeQuery: " + ex.getMessage());
    System.err.println("aq.executeQuerystrSQL: " + sql);
    }
    return rs;
    }
    public void executeUpdate(String sql) {
    try {
    conn = DriverManager.getConnection(sConnStr); 
    Statement stmt = conn.createStatement();
    stmt.executeUpdate(sql);

    catch(SQLException ex) { 
    System.err.println("aq.executeUpdate: " + ex.getMessage());
    System.err.println("aq.executeUpadatestrSQL: " + sql);
    }
    }}
      

  5.   

    如果你用的是jdbc-odbc桥有时是不行的,因为他不完全支持jdbc2.0
      

  6.   

    用jdbc-odbc桥可以用这种方法的
    你的问题应该是出现在你创建ResultSet时是指定的类型问题
    Statement stmt = conn.createStatement();
    这样建立不行,应该指定可以滚到,看一下参数
      

  7.   

    会不会是因为RS中没有记录?这时调用rs.first或rs.last就会出错。