Asp.net 参数化SQL查询错误

Asp.net 参数化SQL查询错误,asp.net,sql,parameterized,Asp.net,Sql,Parameterized,我有一个构建动态参数化SQL查询的应用程序。下面的查询返回一个内部异常“syntax error at or near”= 我认为这是我将参数分配给列名的方式,但我不确定 SELECT TOP 50 77 AS Repository, DocID, LastFileDate, ImageCount, LockedUserID, DocClass, Offline, FileType, OrigFileName, C_CredCardSSN, C_CredCardName,C_CredCar

我有一个构建动态参数化SQL查询的应用程序。下面的查询返回一个内部异常“syntax error at or near”=

我认为这是我将参数分配给列名的方式,但我不确定

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
编辑:谢谢大家。所有这些答案都很有帮助。=)

试试看

WHERE C_CredCardSSN LIKE @sp1

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

或者(回应您的评论)可能:

试试看

WHERE C_CredCardSSN LIKE @sp1

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

或者(回应您的评论)可能:


LIKE语句应如下所示:

WHERE C_CredCardSSN LIKE @sp1 + '%'

LIKE语句应如下所示:

WHERE C_CredCardSSN LIKE @sp1 + '%'
试试这个:

WHERE C_CredCardSSN like @sp1 + '%'
只有在前几个字符正确的情况下,才会找到您的C_CredCardsn。要查找该值内的任何内容,请尝试如下操作

WHERE C_CredCardSSN like '%' + @sp1 + '%'
试试这个:

WHERE C_CredCardSSN like @sp1 + '%'
只有在前几个字符正确的情况下,才会找到您的C_CredCardsn。要查找该值内的任何内容,请尝试如下操作

WHERE C_CredCardSSN like '%' + @sp1 + '%'

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

SqlParameter p = new SqlParameter("@sp1");
p.value = C_CredCardSSNText + "%";

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

SqlParameter p = new SqlParameter("@sp1");
p.value = C_CredCardSSNText + "%";

这里只修复了2个问题中的1个我在这里遇到的问题是,它现在将返回一个错误,该错误表示我必须声明一个标量变量\“@sp1”\。这就是我开始的地方,并添加了“C_CredCardSSN=@sp1”“修理。如果有帮助的话,这一切都是在字符串生成器中构造的,然后将命令文本传递给SqlCommand objectonly这里修复了2个问题中的1个问题我在这里遇到的问题是,它现在将返回一个错误,说我必须声明一个标量变量\“@sp1”\。这就是我开始的地方,我添加了“C_CredCardSSN=@sp1”来修复。如果有帮助的话,这些都是在字符串生成器中构造的,然后将命令文本传递给SqlCommand对象