C# SQL Server重写查询而不使用%
我转而在代码中使用预先准备好的语句,其他一切都正常工作了,但我仍然被这一条难住了。如何在不使用%的情况下重新编写查询 使用准备好的语句时C中出现错误: System.Data.SqlClient.SqlException:“@co”附近的语法不正确。 无法编写声明。” 我的原始工作查询: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%' 我尝试在切换到准备好的语句后重新写入
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,因此我感到困惑,可能是错误的查询?