我正在使用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()
出现此错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第15行的“15:53:47.3978486”附近使用正确的语法。
有什么问题?
答案 0 :(得分: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注入攻击。
答案 1 :(得分:0)
你的varchar应该在2 '
之间,你的查询应该是:
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'