繁体   English   中英

无法使用C#手动更新包含文本字段的mysql数据库

[英]can't manually update a mysql database containing text fields with c#

我正在努力解决使用Windows Forms应用程序更新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替换字符串值)。
有人可以帮忙吗? 谢谢!

似乎您正在尝试使用表对象中的更改来更新后端数据库。 对于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();
}

注意:为了便于阅读,我简化了Parameter语法,并不意味着您的代码是错误的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM