简体   繁体   English

使用c#不更新MSAccess数据库更新

[英]MSAccess database update not updating using c#

I am making a database system. 我正在建立一个数据库系统。 I've implemented the INSERT function properly but when I tried implementing the UPDATE function, I couldn't make any changes to the database. 我已经正确实现了INSERT函数,但是当我尝试实现UPDATE函数时,我无法对数据库进行任何更改。 I don;t know where I went wrong. 我不知道我哪里出错了。
Note: username is declared as string 注意:username声明为字符串

Here is the function handling the 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();            
    }

当使用参数化查询,你不需要把单引号( ' )将文本参数在你的CommandText,所以你应该使用这样的:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM