public static boolean dbLogin(String username,String password){
boolean res=false;
DBConnection dbc=new DBConnection();
Connection con=dbc.dbcon();
String sql="select user_Name from u where user_Pwd="+password;
try {
ResultSet rs=con.createStatement().executeQuery(sql);
if(rs.next()){
String user_Name=rs.getString(1);
System.out.print(user_Name);
if(user_Name.equals(username)){

res=true;
}

}


} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return res;
}

解决方案 »

  1.   

    String user_Name=rs.getString(0); ????
      

  2.   

    String sql="select user_Name from u where user_Pwd='"+password+"'";
      

  3.   

    String user_Name=rs.getString(1);  ---这个错了,是从 0 开始的
    正确的为:String user_Name=rs.getString(0);  
      

  4.   

    String user_Name=rs.getString("user_Name");  // 安全直观....
      

  5.   

    public static boolean dbLogin(String username,String password){
    boolean res=false;
    DBConnection dbc=new DBConnection();
    Connection con=dbc.dbcon();
    String sql="select user_Name from u where user_Pwd="+password;
    try {
    ResultSet rs=con.createStatement().executeQuery(sql);
    if(rs.next()){
    String user_Name=rs.getString(1);
    System.out.print(user_Name);//可以打印
    if(user_Name.equals(username)){
    //执行不了
    res=true;
    }

    }


    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    return res;
    }
      

  6.   

    错误报什么了?
    if(user_Name.equals(username)){ 
    //执行不了 
    res=true; 

    是不是username为null啊?
      

  7.   

    你再用个else语句
    把username打印出来看一下好了
      

  8.   

    System.out.print(username)看看有值吗
      

  9.   

    我把if(user_Name.equals("123")){ 
    //执行不了 
    res=true; 
    } 还不行
    就是这个if语句执行不了
      

  10.   

    ResultSet rs=con.createStatement().executeQuery(sql); 
    if(rs.next()){ 
    String user_Name=rs.getString(1); 
    System.out.print(user_Name);//可以打印 
    if(user_Name.equals(username)){ 
    //执行不了 
    res=true; 
    } 改成:
    ResultSet rs=con.createStatement().executeQuery(sql); 
    while(rs!=null&&rs.next()){ 
    String user_Name=rs.getString(1); 
    System.out.print(user_Name);
    if(user_Name!=null&&user_Name.equals(username)){ 
    res=true; 
      

  11.   

    你在执行if之前把
    user_Name和username全都打印出来看看,好不
      

  12.   

    密码字段是字符串类型的,你的SQL语句没有加单引号导致的,SQL写完
      

  13.   

    数据库里面的user_Name 是什么值?
    用length()来测试下两个值的长度是不是一样!
      

  14.   

    String sql="select user_Name from u where user_Pwd='"+password+"'";sql语句错了,password是个String型的。
      

  15.   

    都能打印出username了,说明sql语句能执行的么,不过也奇怪password不是字符串类型的,不用单引号?问题可能是你的username类型是char (n),长度不到n的自动补空格了吧,
    要么username.trim().equals试试,要么类型改成varchar试试
      

  16.   

    傻了吧?是这样的吗?密码是唯一约束吗?你得到几条记录啊?
    name password
     里    123456
     外    123456你怎么办?
      

  17.   

    select count(*) from u where user_Pwd=+password and user_name=username;
    if rs.getInt(1)>=0
     res = true; 
    这样才能判断是否有这个用户存在
      

  18.   

    sql 语句 你拼错了 
      

  19.   

    2楼的说的对吧
    你的password是String类型的,那么你的sql语句就有问题了
    把String sql="select user_Name from u where user_Pwd="+password;
    改成2楼的试试String sql="select user_Name from u where user_Pwd='"+password+"'";