访问更新语句在C#中不起作用

时间:2016-12-20 07:33:32

标签: c# ms-access oledb

我疯狂地试图找出以下代码不会更新我的数据库的原因。我感谢任何帮助   连接字符串是正确的,我能够执行类似的命令,只有这一个由于某种原因不起作用。基本上我想要的是在传递给方法的列中用“123”替换值“1”的出现。

        public void removeExpired2(string column, string user)
    {
        string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\DB.accdb";

        using (OleDbConnection conn = new OleDbConnection(connectionString))
        {
            OleDbCommand cmd = new OleDbCommand("UPDATE [Reservations] SET [" + column + "] = @Column WHERE [" + column + "] = @ID");
            cmd.CommandType = CommandType.Text;
            cmd.Connection = conn;
            cmd.Parameters.AddWithValue("@Column", "123");
            cmd.Parameters.AddWithValue("@ID", "1");
            try
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                ScriptManager.RegisterClientScriptBlock(Button1, this.GetType(), "AlertMsg", "<script language='javascript'>alert('" + ex.Message.ToString() + "');</script>", false);
            }
        }
    }

2 个答案:

答案 0 :(得分:2)

  

基本上我想要的是用“123”

替换值“1”的出现

您的查询正好相反。

更改此

"UPDATE [Reservations] SET [" + column + "] = @Column WHERE [" + column + "] = @ID"

"UPDATE [Reservations] SET [" + column + "] = @ID WHERE [" + column + "] = @Column"

OR

这样做:

cmd.Parameters.AddWithValue("@Column", "123");
cmd.Parameters.AddWithValue("@ID", "1");

答案 1 :(得分:0)

我用其他两个命令执行了命令,所以我试图将它们分开,似乎解决了这个问题   我将一个命令移动到它自己的方法中,剩下的两个命令就像以前一样,现在它正在运行。谢谢大家。

相关问题