我知道我的语法有问题...... "select * from tblpayroll where empid = userid"
UserID是一个变量......
答案 0 :(得分:2)
select * from tblpayroll where empid = '" & userid & "' "
以这种方式使用它,它将起作用
答案 1 :(得分:0)
文本"select * from tblpayroll where empid = userid"
将通过完全按照发送到SQL后端,userid
部分将不会被替换。因此,除非您有userid
列,否则您可能会收到错误消息。即使您做有userid
列,结果也不会是您期望的结果。
您需要做什么取决于userid
是数值还是字符串值。对于数字,您可以使用:
"select * from tblpayroll where empid = " & CStr(userid)
这将首先将数值转换为字符串并按原样检查。
对于字符串值,请使用:
"select * from tblpayroll where empid = '" & userid & "'"
这将简单地用引号括起字符串,以确保字符串比较有效。你需要知道,如果userid
没有以某种方式消毒,这是一个坏主意 - 它可能导致SQL注入攻击。修复的艺术超出了这个特定问题的范围,但值得记住。
如果您的变量是数字但数据库字段是字符串,该怎么办是另一回事。您可以使用CStr
和零填充来执行此操作,但由于这是不太可能的情况,我在此处没有记录。