C# 删除被称为C的查询异常#
嘿,伙计们,我的数据库项目的CRUD项目快完成了。我只是想完成删除功能C# 删除被称为C的查询异常#,c#,mysql,winforms,desktop-application,C#,Mysql,Winforms,Desktop Application,嘿,伙计们,我的数据库项目的CRUD项目快完成了。我只是想完成删除功能 query = string.Format("DELETE FROM customers WHERE `cid`= {0};", mDeleteTextBox); 我的变量mDeleteTextBox填充了我想要的值。 我的问题出了什么问题 错误消息 An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MyS
query = string.Format("DELETE FROM customers WHERE `cid`= {0};", mDeleteTextBox);
我的变量mDeleteTextBox填充了我想要的值。
我的问题出了什么问题
错误消息
An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll
Additional information: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.TextBox, Text: 6' at line 1
您的附加信息说明了一切:您试图将mTextBox作为查询的参数传递,但是为了访问textbox本身的内容(这是您要用来完成查询的数据),您应该访问textbox的Text属性 因此,您的代码:
query = string.Format("DELETE FROM customers WHERE `cid`= {0};", mDeleteTextBox);
变成
query = string.Format("DELETE FROM customers WHERE `cid`= {0};", mDeleteTextBox.Text);
您的附加信息说明了一切:您试图将mTextBox作为查询的参数传递,但是为了访问textbox本身的内容(这是您要用来完成查询的数据),您应该访问textbox的Text属性 因此,您的代码:
query = string.Format("DELETE FROM customers WHERE `cid`= {0};", mDeleteTextBox);
变成
query = string.Format("DELETE FROM customers WHERE `cid`= {0};", mDeleteTextBox.Text);
您的
{0}
也可能重复,您的{0}
需要有引号,或者更好的是,使用参数化查询:另外,检查mDeleteTextBox中的类型是否为string。也许你想写mDeleteTextBox.Text?Nigrimist你完全正确,谢谢!您的{0}
也可能重复,您的{0}
需要有引号,或者更好的是,使用参数化查询:另外,检查mDeleteTextBox中的类型是否为string。也许你想写mDeleteTextBox.Text?Nigrimist你完全正确,谢谢!更好的答案是教OP如何使用参数,永远不要像这样构建sql语句。这对sql注入是开放的。更好的答案是教OP如何使用参数,永远不要像这样构建sql语句。这对sql注入是开放的。