public class start_loge extends JFrame implements ActionListener{

JLabel jl_title;
JLabel jl_name ;
JTextField jtf_name;
JLabel jl_pass;
JPasswordField jtf_pass;
JButton jb_sure;
JButton jb_exit;

public start_loge(){
Container con = getContentPane();
this.setLayout(null);

jl_title = new JLabel("登陆");
jl_title.setBounds(130, 5, 30, 20);
jl_name = new JLabel("账号:");
jl_name.setBounds(45, 40, 30, 20);
jtf_name = new JTextField();
jtf_name.setBounds(100, 40, 130, 20);
jl_pass = new JLabel("密码:");
jl_pass.setBounds(45, 80, 30, 20);
jtf_pass = new JPasswordField();
jtf_pass.setBounds(100, 80, 130, 20);
jb_sure = new JButton("确定");
jb_sure.setBounds(60, 120, 60, 20);
jb_exit = new JButton("退出");
jb_exit.setBounds(155, 120, 60, 20);

con.add(jl_title);
con.add(jl_name);
con.add(jtf_name);
con.add(jl_pass);
con.add(jtf_pass);
con.add(jb_sure);
con.add(jb_exit);

jb_sure.addActionListener(this);
jb_exit.addActionListener(this);

this.setSize(300, 200);
this.setLocation(500, 220);
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(-1);
}
});
}
public void actionPerformed(ActionEvent e) {
String name = jtf_name.getText();
String pass = jtf_pass.getText();
String n = null, p = null;

if(e.getSource().equals(jb_exit)){
System.exit(0);
}
if(e.getSource().equals(jb_sure)){
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String ds = "jdbc:odbc:snake";
String sql = "select *from snake where name = '"+name+"' and pass = '"+pass+"'";
try {
try {
Class.forName(driver);
} catch (ClassNotFoundException e1) {
   e1.printStackTrace();
}
Connection con = DriverManager.getConnection(ds,"","");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
         System.out.println("1");
while(rs.next()){
n = rs.getString("name");
p = rs.getString("pass");
         System.out.println("2");
if((n.equals(name)) && (p.equals(pass))){
         System.out.println("3");
new Frame_main();
}
else if((jtf_name.getText().equals("")) ||   (jtf_pass.getText().equals(""))){
JOptionPane.showMessageDialog(null, "账号或密码不能为空");
}else{
JOptionPane.showMessageDialog(null, "账号或密码错误");
}

}
} catch (SQLException e1) {
e1.printStackTrace();
}


}
}
                public static void main(String[] args) {
     start_loge sl = new start_loge(); }}

解决方案 »

  1.   

    String sql = "select *from snake where name = '"+name+"' and pass = '"+pass+"'";*from   少个空格
      

  2.   

    哪位大哥给看看是哪出了问题  数据库名是 snake  表名也是 snake
    当我输入错误的密码时 print 1 显示
    当我输入正确的密码时 print 1 和 2 都显示 然后还提示密码输入错误
    着到底是怎么回事啊
    哪里出了问题呢
      

  3.   

    哪里啊 *from前面还是后面啊  还是*和from之间啊
      

  4.   

    楼主, 你还不如把你的print 1 和 print 2 改成打印你的查询结果:
    System.out.println("name : "+n);
    System.out.println("password : "+p);看打印结果是什么就不知道是什么原因了吗