我正在使用 MySqlCommand 在我的 vb.net
应用程序中执行查询插入,现在我有这个查询:
UPDATE primo_appointments SET
book_datetime = @parameter1,
start_datetime = @parameter2,
end_datetime = @parameter3,
notes = @parameter4,
hash = @parameter5,
is_unavailable = @parameter6
WHERE hash = xqA5jdsFBLPTrvy5kKHfgXBZdv9Hs2Ld
AND lastUpdated = 12-01-2016 15:53:47.3978486
当我这样做时:.ExecuteNonQuery()
出现此错误:
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 '15:53:47.3978486' at line 1.
怎么了?
最佳答案
您的 lastUpdated
和 hash
没有用单引号引起来,这是您出错的原因。
对此的解决方法是不将其括在引号中,而是为这些值以及其他值使用参数:
UPDATE primo_appointments SET
book_datetime = @parameter1,
start_datetime = @parameter2,
end_datetime = @parameter3,
notes = @parameter4,
hash = @parameter5,
is_unavailable = @parameter6
WHERE hash = @oldHashString
AND lastUpdated = @lastUpdatedDate
当您使用参数化列表时,您不必记住某个字段是否需要用引号引起来 - 这已为您处理。它还可以保护您免受 SQL 注入(inject)攻击。
关于mysql - MySqlCommand 上的查询语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34770272/