【发布时间】:2018-12-29 12:36:48
【问题描述】:
我尝试编写一个程序来更新带有 id 的数据。当我为 id 写数字时(例如 id=7),程序运行并正常工作。但是当我编写标签文本并转换为数字时,代码不会更新并引发错误。
这是我的代码:
private void yadda_saxla_update_Click(object sender, EventArgs e)
{
connect.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "Update Guller set gulun_adi='"+gul_adi.Text+ "', sekil='" + gulun_adi_label.Text + "' where id='"+Convert.ToInt32( id_label.Text)+"'";
// when i write "id=7" or other number data is update,
// but i want update with label text ( Convert.ToInt32( id_label.Text) )
// and gives error
cmd.Connection = connect;
cmd.ExecuteNonQuery();
connect.Close();
disp_data();
}
错误如下:
我能做什么?谢谢...
【问题讨论】:
-
请将您的语言环境设置为英语,以便您收到的错误消息为英语。在任何情况下,您的代码都容易受到 SQL 注入的影响:不要将值连接到查询字符串中(尤其是从用户输入获得的字符串值)。
-
只需查看
cmd,CommandText的值就可以看出id=7和id='7'之间的区别,这将是一个很大的提示......
标签: c# database ms-access sql-update