1

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

4 回答 4

5

试一试

WHERE C_CredCardSSN LIKE @sp1

或者

WHERE C_CredCardSSN LIKE @sp1+'%'

取决于你为什么在那里有一个“%”(感谢 Joel Coehoorn 指出我错过的“%”的评论)。

或者(回应您的评论)也许:

WHERE C_CredCardSSN LIKE ''+@sp1
于 2009-03-26T19:53:42.040 回答
4

LIKE 语句应如下所示:

WHERE C_CredCardSSN LIKE @sp1 + '%'
于 2009-03-26T19:57:23.780 回答
2

试试这个:

WHERE C_CredCardSSN like @sp1 + '%'

如果前几个字符正确,这只会找到您的 C_CredCardSSN。要找到该值内的任何内容,请尝试这样

WHERE C_CredCardSSN like '%' + @sp1 + '%'
于 2009-03-26T19:57:34.870 回答
1

在将其作为参数添加到查询之前,尝试将“%”添加到文本中:

SqlParameter p = new SqlParameter("@sp1");
p.value = C_CredCardSSNText + "%";
于 2009-03-26T20:37:56.227 回答