问题好像在这句:
   pstmt.setString(1,userName);

解决方案 »

  1.   

    给你一个建议,用username和password这两个字段的数据库中同时找,这样估计不会出问题,也就是你的sql语句改成
              string sql="select * from user where username=? and password=?";
     pstmt=conn.prepareStatement(sql);
     pstmt.setString(1,userName);
              pstmt.setString(2,password);
     rs=pstmt.executeQuery();
              return rs.next();
    将check()方法改成返回boolean类型的,参数不变。估计你的问题是出在pstmt和rs己经被使用一次了,可能己经失效了,如果不行的话,你在你的那个else中另外声明一个pstmt和rs试试看。
      

  2.   

    username和password这两个字段的数据库中同时找就不能查到是否有此用户这一步,有一点缺陷了。
      

  3.   

    那就另外声明一个pstmt和rs试试咯
      

  4.   

    我另外定义了一个rs2,pstmt2还是不行.
      

  5.   

    sql="select * from userinfo where loginid='"+userName+"'and passwd=?";   注意and前面需要一个空格!
    sql="select * from userinfo where loginid='"+userName+"' and passwd=?";   
      

  6.   

    注意and前面需要一个空格!
    sql="select * from userinfo where loginid='"+userName+"' and passwd=?";   
    ========================================
    试过了,不行.
      

  7.   

    问题解决了
    PreparedStatement 的方法 executeQuery() 没有参数pstmt=conn.prepareStatement(sql);  
    pstmt.setString(1,password) ;
    rs=pstmt.executeQuery() ;