小第初学java,用JBuilder的GUI创建一个登陆窗口时不知道应该怎样进行验证,请大哥大姐们指点一下啊!   public void jButton1_actionPerformed(ActionEvent e) {
        try {
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        } catch (ClassNotFoundException ex) {
            System.out.println(ex);
        }
        String url="jdbc:odbc:users";
        try {
             Connection con = DriverManager.getConnection(url, "sa", "sa");
             Statement stmt =con.createStatement();
             String str1=jTextField1.getText();
             ResultSet rs=stmt.executeQuery("select * from users where uid='"+str1+"'");
           if(rs.next()){
                   String str2=jTextField2.getText();
                   ResultSet rt=stmt.executeQuery("select * from users where pwd='"+str2+"'");
               if(rt.next()){
                   Frame2 f2 = new Frame2();
                   f2.setSize(400,500);
                   f2.show();
                 }else{
                     JOptionPane.showMessageDialog(this,"密码错误");
                 }           }else{
               JOptionPane.showMessageDialog(this,"帐号不存在");
           }
        } catch (SQLException ex1) {
            System.out.println(ex1);
        }
    }
}总感觉上面的代码有问题,不能达到验证效果!
虚心请教ing.........

解决方案 »

  1.   

    public static void main(String[] args) {
            LoginFrame lf= new LoginFrame();
            lf.setSize(400,280);
            int x = (Toolkit.getDefaultToolkit().getScreenSize().width - lf.getSize().width)/2;
            int y = (Toolkit.getDefaultToolkit().getScreenSize().height - lf.getSize().height)/2;
            lf.setLocation(x,y);
            lf.setTitle("登录");
            lf.setVisible(true);    }    public void jBexit_actionPerformed(ActionEvent e) {
            if (JOptionPane.OK_OPTION== JOptionPane.showConfirmDialog(c,"是否真的退出?"," 退出提示!",JOptionPane.OK_CANCEL_OPTION))
                    {
                        System.exit(0);
                    }    }
      

  2.   

    你的没有用JAVA BEAN
    上面的我给错了
     while (rs.next()){
                            if (this.jTName.getText().equals(rs.getString(用户名在数据库的第几列)) &&pwd.equals(rs.getString(密码在数据库的第几列))){
                                JOptionPane.showMessageDialog(null, "登录成功!");
                           this.dispose();
                         //主窗体show();}}
    应该用equals判断是否与输入的内容相同.
      

  3.   

    你的程序肯定有问题了,绝对达不到楼主你所要的效果!
    public void jButton1_actionPerformed(ActionEvent e) {
            try {
               Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            } catch (ClassNotFoundException ex) {
                System.out.println(ex);
            }
            String url="jdbc:odbc:users";
            try {
                 Connection con = DriverManager.getConnection(url, "sa", "sa");
                 String UserID=jTextField1.getText();
           String pwd=jTextField2.getText();
                 PreparedStatement sql=con.prepareStatement("select * from users where uid=? and pwd=?);
                 sql.setString(1,UserID);
                 sql.setString(2,pwd);
                 ResultSet rs=stmt.executeQuery();            
               if(rs.next()){                   
                       Frame2 f2 = new Frame2();
                       f2.setSize(400,500);
                       f2.show();
                     }else{
                         JOptionPane.showMessageDialog(this,"密码或账号错误");
                     }                   } catch (SQLException ex1) {
                System.out.println(ex1);
            }
        }
    }
      

  4.   

    恩!
    是要找到 id 和 pwd  在数据库中的相应的列
    用equals判断是否与输入的内容相同进行验证!
       一语惊醒啊!
    我在试试!