public boolean UserCheck(String u,String p){
boolean b=false;/*我发现b的值没有变化,即在这里如果设置默认是true,return b 还是ture,如果默认是false,return b还是false!!!下面不执行?还是数据库没连接上?*/
try{
Conn db=new Conn();
cn=db.getConn();
st=cn.createStatement();
rs=st.executeQuery("select psd from userInfo where user_name='"+u+"'");
 
if(rs.next()){
String password=rs.getString(1);
if(password.equals(p)){
b=true;
}else{
b=false;
}
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
this.close();
}
 
return b;
 }/****************************************************************************连接数据库的类*********/
public class Conn {
    private Connection conn=null; /*定义数据库连接*/
public Connection getConn(){
  try{
 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
 conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=数据库名","sa","sa");  
  }
  catch(Exception ex){
  ex.printStackTrace();/*输出错误信息*/
  }
  return conn;
}
}

解决方案 »

  1.   

      这里貌似不是if的事吧!用if跟while效果差不多吧
      

  2.   

    rs.next()的事
    我这里把username设定为主键了,所以rs记录集要么没值,要么有且只有一条记录。而这里if(rs.next()) //rs进行读取一次 判断是否有数据 应该没错啊!?然后,我按照你说的尝试了一下把if(rs.next())改成while(rs.next())效果一样
      

  3.   

    在数据库连接class Conn 里加条输出语句,看看能不能得到连接
    把boolean b定义到全局
      

  4.   

    楼主是要实现判断用户是否存在的功能吧,建议sql语句里面的u换成占位符试试,可能是数据没有成功传进去,所以查询失败
      

  5.   

    太感谢了,试了一下那个cn=null
      

  6.   

    百度一下肯定大把大把的,最好加上你的编辑器,如eclispe怎么打断点调试之类的