Dim cmd As New OleDbCommand
cmd.Connection = conn
Dim dr As OleDb.OleDbDataReader
cmd = New OleDbCommand(
"update sales set outlet_no=' " & tb1.Text & _
" 'and eid=' " & tb2.Text & _
" 'and cid=' " & TB3.Text & _
" 'and pid=' " & TB4.Text & _
" 'and sale_date=' " & TB5.Text & _
" 'and quantity=' " & TB6.Text & _
" 'where outlet_no=' " & tb1.Text & " ' ", conn)**
cmd.CommandType = CommandType.Text
dr = cmd.ExecuteReader()
我已经检查了100次,我发现UPDATE的语法正确。请帮忙。我需要很快修复一个项目
答案 0 :(得分:4)
正确的UPDATE
语句语法为:
UPDATE table_name
SET col1 = val1, col2 = val2, ..., colN = valN
WHERE somecolumn = somevalue
但你现在有:
UPDATE table_name
SET col1 = val1 AND col2 = val2 AND ... AND colN = valN
WHERE somecolumn = somevalue
问题是AND
个关键字。它们应该是逗号(,
)。
顺便说一句,我现在就说出来,你会听到其他人说的话。请考虑使用参数绑定,而不是直接在SQL中以您的方式连接您的值。一个原因是防止SQL注入漏洞。但是如果你的任何一个值中只有一个引号,它也会阻止破坏你的查询,而你却忘记将单引号加倍。
修改强>
现在T.S.
已经如此善意地清理了问题的格式,对我来说,即使你修复了UPDATE
语句的一般语法后,你也很明显可能会发现它并没有达到您所期望的效果,因为您的单引号内似乎有不受欢迎的额外空间。 (例如:outlet_no=' "
或& " ' "
)。
使用参数绑定的另一个原因是:您不必担心单引号的位置。