0

我正在努力解决使用 Windows 窗体应用程序更新 MySQL 数据库的问题。代码如下所示:

global_data.MyDA.UpdateCommand = new MySqlCommand("UPDATE words SET word = @word WHERE id = @id", global_data.connection);
global_data.MyDA.UpdateCommand.Parameters.Add(
    new MySqlParameter("@word", MySqlDbType.Text, 0x7FFF, ParameterDirection.Input, false,
    0, 0, "word", DataRowVersion.Proposed, (object)edtWord.Text));
global_data.MyDA.UpdateCommand.Parameters.Add(
    new MySqlParameter("@id", MySqlDbType.UInt32, 10, ParameterDirection.Input, false,
    0, 0, "id", DataRowVersion.Proposed, (object)current_id)); 
global_data.MyDA.Update(table);

但是,它无法更新任何内容(在这种情况下 - 用 替换字符串值edtWord.Text)。
有人可以帮忙吗?谢谢!

4

1 回答 1

0

似乎您正在尝试使用表对象中的更改来更新后端数据库。这对于 DataAdapter 的 Update 方法以及当表绑定到更改其基础数据源的某些 UI 控件(例如 DataGridView)时很好。

但是,如果您有一个简单的未绑定文本框并且想要更新数据库中的记录,那么正确的方法是定义一个命令并执行它

string cmdText = "UPDATE words SET word = @word WHERE id = @id";
using(MySqlConnection cn = new MySqlConnection(constring))
using(MySqlCommand cmd = new MySqlCommand(cmdText, cn))
{
    cn.Open();
    cmd.Parameters.AddWithValue("@word", edtWord.Text);
    cmd.Parameters.AddWithValue("@id", current_id);
    cmd.ExecuteNonQuery();
}

注意为了可读性,我已经简化了参数语法,而不是暗示你的代码是错误的

于 2013-06-28T09:56:45.487 回答