良い一日
私はまだ学校で Java プログラミングを学んでおり、取り組んでいるプロジェクトがあります。すべてが正常に機能していますが、ユーザーがログイン資格情報を変更できるようにする私のプログラムの機能の 1 つが正しく機能しなくなりました。何も変更した覚えがなく、以前は問題なく機能していました。
この問題は、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 がどのようなものかを知っておくと役に立つと思いました。願わくば、私のコードがそのようになっている理由をよりよく理解していただければ幸いです。
誰かが私を助けてくれることを願っています!この厄介な問題を解決するために必死です。