C# SQL Server重写查询而不使用%

C# SQL Server重写查询而不使用%,c#,sql,sql-server,C#,Sql,Sql Server,我转而在代码中使用预先准备好的语句,其他一切都正常工作了,但我仍然被这一条难住了。如何在不使用%的情况下重新编写查询 使用准备好的语句时C中出现错误: System.Data.SqlClient.SqlException:“@co”附近的语法不正确。 无法编写声明。” 我的原始工作查询: SELECT TOP(1) [shortName] FROM [xx].[dbo].[yy] WHERE [AWScompanyList] LIKE '%1040%' 我尝试在切换到准备好的语句后重新写入

我转而在代码中使用预先准备好的语句,其他一切都正常工作了,但我仍然被这一条难住了。如何在不使用%的情况下重新编写查询

使用准备好的语句时C中出现错误:

System.Data.SqlClient.SqlException:“@co”附近的语法不正确。 无法编写声明。”

我的原始工作查询:

SELECT TOP(1) [shortName] 
FROM [xx].[dbo].[yy] 
WHERE [AWScompanyList] LIKE '%1040%'
我尝试在切换到准备好的语句后重新写入

--Cannot use a CONTAINS or FREETEXT predicate on table or indexed view 'xx.dbo.yy' because it is not full-text indexed.
SELECT TOP(1) [shortName] 
FROM [xx].[dbo].[yy] 
WHERE CONTAINS([AWScompanyList], '1040')

应该是这么简单。假设您添加了一个名为@co的参数

SELECT top(1) shortName 
FROM xx.dbo.yy 
where AWScompanyList like '%' + @co + '%'

这个条件可以很容易地重写为

SELECT top(1) shortName 
FROM xx.dbo.yy 
where charindex(@co, AWScompanyList) > 0

嗯……错误信息非常清楚。但不清楚的是,为什么您认为在使用参数时不能使用通配符。未能解析的查询中的“@co”在哪里?您的原始查询中没有@co,因此我感到困惑,可能是错误的查询?