gpt4 book ai didi

c# - 更新命令不起作用?

转载 作者:行者123 更新时间:2023-11-30 20:44:14 24 4
gpt4 key购买 nike

所以我有代码将 UPDATE 查询存储在一个字符串中,然后我参数绑定(bind)更新查询然后执行和更新它,这是我的代码:

string query = "UPDATE Users SET first_name = '@firstname' WHERE ID = @id";
updateUserDS.UpdateParameters.Add("id", HTTPContext.Current.Session["ColumnID"].ToString());
updateUserDS.UpdateParameters.Add("firstname", txt_firstname.Text);
updateUserDS.UpdateCommand = query;
updateUserDS.Update();

然而,当我将我的字符串查询更改为:

string query = "UPDATE Users SET first_name = 'name' WHERE ID = 44";

它完美地工作并更新了我的表,所以我猜它与我绑定(bind)查询的方式有关,有没有人意识到我哪里出错了?

顺便说一句:Session["ColumnID"] 正在被完美检索,因为它在堆栈跟踪中指出 44

最佳答案

@firstname 中删除单引号:

string query = "UPDATE Users SET first_name = @firstname WHERE ID = @id";
updateUserDS.Parameters.AddWithValue("@firstname", first_name);
updateUserDS.Parameters.AddWithValue("@id", HTTPContext.Current.Session["ColumnID"].ToString());

编辑:

假设您正在使用 SQL Server 作为数据库,请像这样尝试:

SqlCommand sqlComm = new SqlCommand();
sqlComm.CommandText = @"UPDATE Users SET first_name = @firstname WHERE ID = @id";
sqlComm.Parameters.Add("@firstname", SqlDbType.VarChar);
sqlComm.Parameters["@firstname"].Value = txt_firstname.Text;
sqlComm.Parameters.Add("@id", SqlDbType.VarChar);
sqlComm.Parameters["@id"].Value = HTTPContext.Current.Session["ColumnID"].ToString();

using (SqlConnection sqlConn = new SqlConnection(connection string here);)
{
sqlComm.Connection = sqlConn;
sqlConn.Open();
sqlComm.ExecuteNonQuery();
}

关于c# - 更新命令不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29634565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com