参数化SQL查询错误

时间:2009-03-26 19:52:25

标签: asp.net sql parameterized

我有一个构建动态参数化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

编辑:感谢大家。所有这些答案都有帮助。 =)

4 个答案:

答案 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 + "%";