我有一个构建动态参数化SQL查询的应用程序。以下查询返回“语法错误在或附近”=“...
的内部异常我认为这是我将参数分配给列名的方式但是,我不确定。代码如下。
SELECT TOP 50 77 AS Repository, DocID, LastFileDate, ImageCount,
LockedUserID, DocClass, Offline, FileType, OrigFileName, C_CredCardSSN, C_CredCardName,C_CredCardDocType, C_CredCardDocDate, C_CredCardStatus
FROM D77
WHERE C_CredCardSSN
LIKE C_CredCardSSN = @sp1%
ORDER BY C_CredCardSSN,C_CredCardName
编辑:感谢大家。所有这些答案都有帮助。 =)
答案 0 :(得分:5)
尝试
WHERE C_CredCardSSN LIKE @sp1
或
WHERE C_CredCardSSN LIKE @sp1+'%'
取决于你在那里有“%”的原因(感谢Joel Coehoorn的评论指出我错过的“%”)。
或者(回应你的评论)或许:
WHERE C_CredCardSSN LIKE ''+@sp1
答案 1 :(得分:4)
LIKE语句应如下所示:
WHERE C_CredCardSSN LIKE @sp1 + '%'
答案 2 :(得分:2)
试试这个:
WHERE C_CredCardSSN like @sp1 + '%'
如果前几个字符正确,则只会找到您的C_CredCardSSN。要查找该值内的任何内容,请尝试使用此
WHERE C_CredCardSSN like '%' + @sp1 + '%'
答案 3 :(得分:1)
在将文本作为参数添加到查询之前,尝试将“%”添加到文本中:
SqlParameter p = new SqlParameter("@sp1");
p.value = C_CredCardSSNText + "%";