【问题标题】:sql syntax error occur?出现sql语法错误?
【发布时间】:2014-11-17 06:42:13
【问题描述】:
 string query = "update library_database.members set name='" + txtname.Text + "', Adresss='" + richtxtadress.Text + "',";
 query = query + "Status='" + cmbstatus.SelectedText + "',Type='" + cmbtype.SelectedText + "',";
 query = query + "Date_expiry='" + dateofexpiry.Value.ToString("yyyy-MM-dd") + "',@IMG";
 query=query+"' where id='";
 query = query + txtid.Text + "'";
 cmd = new MySqlCommand(query, con);
 cmd.Parameters.Add(new MySqlParameter("@IMG", imgbt));

异常发生在@IMG 附近的第 1 行 SQL Santax 错误。请帮忙解决一下?

【问题讨论】:

  • 您应该始终使用parameterized queries。这种字符串连接对SQL Injection 攻击开放。
  • 好的,但这次我使用这种类型的查询,请检查语法错误。
  • 删除除最后一个 set 语句之外的所有语句后,您的查询将类似于 update [...] set @IMG where [...]

标签: c# mysql c#-4.0 mysql-workbench


【解决方案1】:

您在更新 @IMG 值时似乎忘记了列名。

应该是这样的;

query = ... "ColumnName = @IMG" + ...

但是请

始终使用parameterized queries。这种字符串连接对SQL Injection 攻击开放。

下次,当您遇到这种 sql 语法 错误时,您应该尝试的第一件事是在数据库管理器中运行您的查询。然后,您可以轻松查看您的查询出了什么问题以及如何解决它。

【讨论】:

  • @ASIMSHAHID 你能用值显示你所有的查询吗?还有你的列类型?
  • string query = "update library_database.members set name='" + txtname.Text + "', Adresss='" + richtxtadress.Text + "',";查询=查询+“状态='”+ cmbstatus.SelectedText +“',Type='”+ cmbtype.SelectedText +“',”;查询 = 查询 + "Date_expiry='" + dateofexpiry.Value.ToString("yyyy-MM-dd") + ",image='@IMG'";查询=查询+"' 其中 id='";查询 = 查询 + txtid.Text + "'"; cmd = new MySqlCommand(query, con); cmd.Parameters.Add(new MySqlParameter("@IMG", imgbt));它在没有图像的情况下工作正常我在插入图像时检查了 bt 它给出错误我的图像库伦类型是 blob。
猜你喜欢
  • 2013-10-07
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多