我写了一个登录界面,在数据库类是这样写的:
    public  boolean denglu(String name,String pwd)
{
   String sql="select username from users where userpwd=?";
   boolean b=false;
   try {
       ps = con.prepareStatement(sql);
       ps.setString(1, pwd);
       rs = ps.executeQuery();       while (rs.next()) {
           String na = rs.getString(1);
           String p=rs.getString(2);
           if (name.trim().equals(na)&&pwd.trim().equals(p)) {
               b = true;
               break;
            }       }
   } catch (SQLException ex) {
       System.out.println("登录错误");
   }return b;
}
界面类是这样写的,:
 public void dlBut_actionPerformed(ActionEvent e) {
        String name= this.yhmTex.getText();
       char[] pa=this.mimaPass.getPassword();
       String pwd=String.valueOf(pa);
        Date d=new Date();
        d.con();
        boolean b=d.denglu(name,pwd);
         d.close();
        if(b)
        {
            JOptionPane.showMessageDialog(this,"登录成功!");
           ZhuFrame xf=new ZhuFrame();
           xf.setVisible(true);        }else
        {
            JOptionPane.showMessageDialog(this,"用户名或密码错误!","错误",JOptionPane.ERROR_MESSAGE);
        }    }
忙我看看是哪里错了,我运行时总出现用户名或密码错误。

解决方案 »

  1.   

    String sql="select username from users where username=? and userpwd=?"; 
      

  2.   

    sql语句如楼上所写下面就要改成
     try   { 
                  ps   =   con.prepareStatement(sql); 
                  ps.setString(1,   name); 
                  ps.setString(2,   pwd); 
                  rs   =   ps.executeQuery(); 
                  ......
      

  3.   

    1.String   sql="select   username  userpwd from   users   where   username=?   and   userpwd=?";   
    2.  ps   =   con.prepareStatement(sql); 
                  ps.setString(1,   username);
                  ps.setString(2,   userpwd);
               
                  rs   =   ps.executeQuery(); 
    3. if   (name.trim().equals(na)&&pwd.trim().equals(p))   { 
                                  return true;
                                  break; 
                            }