1

データベースシステムを作っています。INSERT 関数は適切に実装しましたが、UPDATE 関数を実装しようとすると、データベースに変更を加えることができませんでした。どこで間違ったのかわかりません。
注: ユーザー名は文字列として宣言されます

UPDATE を処理する関数は次のとおりです。

private void btnUpdate_Click(object sender, EventArgs e)
    {

        string q = "UPDATE [registrationinfo] SET [Password]='?', [EmailAdd]='?', [HomeAdd]='?' WHERE [Username]='?'";

        OleDbConnection connect = new OleDbConnection(MyConnectionString);
        connect.Open();
        try
        {
            OleDbCommand command = new OleDbCommand(q,connect);

            command.Parameters.AddWithValue("@Password", txt_password.Text);
            command.Parameters.AddWithValue("@EmailAdd", txt_eadd.Text);
            command.Parameters.AddWithValue("@HomeAdd", txt_homeadd.Text);
            command.Parameters.AddWithValue("Username", username);

            command.ExecuteNonQuery();

            txt_password.Clear();
            txt_eadd.Clear();
            txt_homeadd.Clear();
            txt_conPass.Clear();
        }
        catch (Exception ex)
        {
            connect.Close();
            MessageBox.Show(ex.Message.ToString());
        }

        connect.Close();            
    }
4

1 に答える 1

3

パラメーター化されたクエリを使用する場合、CommandText のテキスト パラメーターを一重引用符 ( ) で囲む必要はない'ため、次のようなものを使用する必要があります。

string q = "UPDATE [registrationinfo] SET [Password]=?, [EmailAdd]=?, [HomeAdd]=? WHERE [Username]=?";
于 2013-10-08T07:05:51.387 に答える