2

ユーザーは、8 つの JTextFields を介して自分の情報を入力します。この情報はパラメーターを介して updateUser メソッドに渡され、メソッドはこの情報で SQL テーブルを更新します。これは私が現在やろうとしていることですが、ユーザーが更新ボタンを押してもデータベーステーブルは変更されません

ユーザー データを取得し、UserOperation を作成して updateUser メソッドを呼び出す

   String userName = textFieldUserName.getText();
                String userPassword = textField_1.getText();
                String securityQuestion = textFieldSecQuestion.getText();
                String securityAnswer = textFieldAnswer.getText();
                String email = textFieldEmail.getText();
                String fName = textFieldName.getText();
                String phoneNumber = textFieldPhone.getText();
                String department = textFieldDepartment.getText();

                UserOperations userOperations = new UserOperations();
                userOperations.updateUser(userName, userPassword, securityQuestion, securityAnswer, email, fName, phoneNumber, department);

updateUser メソッド

     public void updateUser (String userName, String userPassword, String securityQuestion, String securityAnswer, String email, String fName, String phoneNumber, String department)
    {

        try
        {
            String sql = "UPDATE systeuser SET username = ?,userpassword = ?,securityquestion = ?,securityanswer = ?,email = ?,fname = ?,phonenumber = ?,department = ? WHERE username = ?";
              stmt = conn.prepareStatement(sql);
              stmt.setString (1, userName);
              stmt.setString (2, userPassword);
              stmt.setString (3, securityQuestion);
              stmt.setString (4, securityAnswer);
              stmt.setString (5, email);
              stmt.setString (6, fName);
              stmt.setString (7, phoneNumber);
              stmt.setString (8, department);
              stmt.setString (9, userName);
              stmt.executeUpdate( );
        }
        catch (Exception e)
        {
            e.printStackTrace ( );

        }

    }
4

2 に答える 2

4

.を一重引用符で囲んでいるため?です。これを行っているので、これらの一重引用符を付ける必要はありません:-

stmt.setString(1, userName); // setString says that this parameter is a String

Stringしたがって、クエリで囲むために一般的に使用される一重引用符は、この場合は必要ありません。

于 2013-05-06T11:17:03.397 に答える
0

クエリ パラメータで使用される疑問符を引用符で囲まないでください。代わりに、次を使用します。

UPDATE systeuser SET username = ?, userpassword = ?, ...
于 2013-05-06T11:20:42.910 に答える