gpt4 book ai didi

c# - MySQLAdapter 不会更改值

转载 作者:行者123 更新时间:2023-11-30 23:05:26 26 4
gpt4 key购买 nike

 public static int update(DataTable dt, string id, string table){
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.UpdateCommand = new MySqlCommand("UPDATE " + table + " SET username=?username,password=?password WHERE id=" + id, conn);
adapter.UpdateCommand.Parameters.Add("?username",MySqlDbType.VarChar,30);
adapter.UpdateCommand.Parameters.Add("?password", MySqlDbType.VarChar, 30);
adapter.Update(dt);
...
...
}

我试过了,但是 MySQL 服务器中的值没有相应改变。

注意:我想更新位于 DataTable dt (dt.Rows[0]["username"],dt.Rows[0]["password"]) 中的值,我不想手动指定值。

感谢您的帮助。

最佳答案

我在您的代码中发现了一些错误。首先,您需要使用@ 符号来指定您的参数。

来自 5.1.4 Working with Parameters

Note that the parameter is preceded by an '@' symbol to indicate it is to be treated as a parameter.

并且您没有为参数指定值。您只是声明了它们的参数,但没有向它们添加任何值。评估您的 .Value 属性的值。或者您可以使用 AddWithValue 方法作为替代方法。使用 AddWithValue 方法,您不需要指定它们的类型。我也没有在您的代码中看到任何 MySqlConnection。您在 MySqlCommand 中定义了 conn 但您没有使用它并在任何地方打开它。你需要使用 .Fill使用前的方法 .Update方法。

例如;

 public static int update(DataTable dt, string id, string table)
{
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.UpdateCommand = new MySqlCommand("UPDATE " + table + " SET username=@username,password=@password WHERE id=" + id, conn);
adapter.UpdateCommand.Parameters.Add("@username",MySqlDbType.VarChar,30).Value = usernameValue;
adapter.UpdateCommand.Parameters.Add("@password", MySqlDbType.VarChar, 30).Value = passwordValue;
conn.Open();
adapter.Fill(dt);
adapter.Update(dt);
}
}

关于c# - MySQLAdapter 不会更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22128394/

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