Connection con = null;
        Statement sql;
        ResultSet rs;
        String mm = null;
        mm = jTextField1.getText();
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            con = DriverManager.getConnection("Jdbc:Odbc:order_sell");
            sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        if ((Demand_ComboBox.getSelectedItem()).equals("按名称查找")){
            rs = sql.executeQuery("select * from Customer where CustomerName LIKE '%" + mm + "%'");
            int pass = rs.getInt("Password");
            int useid = rs.getInt("CustomerID");
            int passtext =Integer.parseInt(new String(Demand_Password.getPassword()));
            if(passtext==pass){
                Return_Text.setText("useid");
            }
            else{
                System.out.println(444);
                Return_Text.setText("输入内容有错");
            }
        }else{
            rs = sql.executeQuery("select * from Customer where Address LIKE '%" + mm + "%'");
            int pass = rs.getInt("Password");
            String useid = rs.getString("Address");
            int passtext =Integer.parseInt(new String(Demand_Password.getPassword())) ;
            if(passtext==pass){
                Return_Text.setText("useid");
           }
           else{
                 Return_Text.setText("输入内容有错");
           }
        }
            } catch (ClassNotFoundException ex) {
                System.out.println(111);
            } catch (SQLException ex) {
                System.out.println(ex);
            }        }
提示一个异常java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态
我机器是win2003

解决方案 »

  1.   

    你的rs都没有调用next()方法
    它就还没有指向第一条数据
      

  2.   

    是的,你不用rs.next()方法,游标还指向第一条数据的前一个位置.
      

  3.   

    executeQuery 取得的rs 集时,它的游标是指向第一条记录之前的,所以要先用next()方法将其定位到第一条.
    rs = sql.executeQuery("select * from Customer where CustomerName LIKE '%" + mm + "%'");
    // 添加 ..
        while(rs.next()){
                int pass = rs.getInt("Password");
                int useid = rs.getInt("CustomerID");
                int passtext =Integer.parseInt(new String(Demand_Password.getPassword()));
                if(passtext==pass){
                    Return_Text.setText("useid");
                }
                else{
                    System.out.println(444);
                    Return_Text.setText("输入内容有错");
                }
    }
      

  4.   

    Exception已经把错误说的很明确了..