我疯狂地试图找出以下代码不会更新我的数据库的原因。我感谢任何帮助 连接字符串是正确的,我能够执行类似的命令,只有这一个由于某种原因不起作用。基本上我想要的是在传递给方法的列中用“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);
}
}
}
答案 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)
我用其他两个命令执行了命令,所以我试图将它们分开,似乎解决了这个问题 我将一个命令移动到它自己的方法中,剩下的两个命令就像以前一样,现在它正在运行。谢谢大家。