逻辑错误or代码错误?
不知道是我逻辑思考错误 还是代码写的不对 我在写一个系统锁定的时候 老是搞不定String s1,s2;
char [] s3;
s1=txt.getText();
s3=pw.getPassword();
if(s1.equals(new String("")) || s3.equals(new String("")))
{
JOptionPane.showMessageDialog(this,"帐号和不能为空!","提示",JOptionPane.INFORMATION_MESSAGE);
}
else
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:m1";
Connection cn=DriverManager.getConnection(url);
String st="select * from m1 where name=? and pwd=?";
PreparedStatement ps=cn.prepareStatement(st);
ps.setString(1,s1);
ps.setString(2,String.valueOf(s3));
ResultSet rs=ps.executeQuery();
if(rs.next()==false)
{
JOptionPane.showMessageDialog(this,"帐号或密码不正确,请重新输入!","提示",JOptionPane.INFORMATION_MESSAGE);
txt.setText(null);
pw.setText(null);
}
else
{
// this.dispose();
Grad GP=new Grad(); //1
// GP.setVisible(true);
// s2=GP.txt11.getText(); //2
if(s1.equals(GP.txt11.getText())) //3
{
this.dispose();
GP.setVisible(true);
}
else
{
JOptionPane.showMessageDialog(this,"帐号或密码不正确1,请重新输入!","提示",JOptionPane.INFORMATION_MESSAGE);
}
}
}
catch(Exception e){}
}
问题出在这3句
就象现在这样运行后 他会在判断后跳出GP界面而不管是对是错 如果把//1不写注释掉 我下面的又判段不了 得不到GP
还有第3句 我在GP里有个JTextfiled 我用s1的值和GP的JTextfiled值对比 都是S tring 为什么就是比不了呢?
请版主帮我想想 我是判断 如果和GP的text值一样 就执行dispose()后跳出GP界面 不一样就提示 我要在else{}里怎么写才能先判断 然后跳GP窗体 而不是在判断的时候就跳出来了 谢谢
[此贴子已经被作者于2006-6-4 7:54:42编辑过]