再会
我还在学校学习 Java 编程,并且有一个项目我一直在做。一切正常,但是我的程序中允许用户更改其登录凭据的一项功能不再正常运行。我不记得改变任何东西,它以前工作得很好。
当我单击执行 SQL 查询以更改数据库中的用户名和密码字段值的“应用”按钮时,就会出现问题。JFrame 冻结,我必须通过 WTM 强行终止它。另外需要注意的是,在控制台中,我收到一条红色消息:
Java 结果:-805306369
它每次都具有相同的价值。我做了一些谷歌搜索,我发现像冻结这样的问题是由循环错误引起的,但据我所知,我没有任何代码的这个特定部分。
如果有人可以帮助我,我将不胜感激!把我的头发拉出来。
下面是我的“应用”按钮代码,以及 SQL 查询。
private void btnApplyActionPerformed(java.awt.event.ActionEvent evt) {
try {
if (txtNewUsername.equals("")) {
labelFlagUsername.setVisible(false);
JOptionPane.showMessageDialog(this, "You Need To Fill In The New Username Field", null, JOptionPane.ERROR_MESSAGE);
System.out.println("You Need To Fill In The New Username Field");
} else if (txtNewPassword.equals("")) {
labelFlagPassword.setVisible(false);
JOptionPane.showMessageDialog(this, "You Need To Fill In The New Password Field", null, JOptionPane.ERROR_MESSAGE);
System.out.println("You Need To Fill In The New Password Field");
} else {
UN = txtNewUsername.getText();//Gets value that user entered into field
PW = txtNewPassword.getText();//Gets value that user entered into field
DM.editLoginDetails(UN, PW);//Executes SQL query editLoginDetails
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(this, e.getMessage(), null, JOptionPane.ERROR_MESSAGE);
System.out.println(e.getMessage());
}
txtCurrentUsername.setText(" " + DM.getUsername(UN));
txtCurrentPassword.setText(" " + DM.getPassword(PW));
String temp = "";
txtNewPassword.setText(temp);
txtNewUsername.setText(temp);
}
SQL查询:
public String editLoginDetails(String UN, String PW)
{
try {
Statement st = con.createStatement();
String query = "UPDATE Users SET Username = '" + UN + "',Password = '" + PW + "';";
st.execute(query);
ResultSet rs = st.getResultSet();
JOptionPane.showMessageDialog(null, "Your login details were changed successfully!");
System.out.println("Your login details were changed successfully!");
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage());
System.out.println(e.getMessage());
}
return "Your login details were changed successfully!";
}
最后,我认为了解这个 JFrame 长什么样会很有用。希望您能更好地理解为什么我的代码是这样的。
我希望有人能帮助我!急于解决这个烦人的问题。