C#和SQL LIKE条件:'%'用作单字符通配符

oho*_*oho 3 c# sql sql-server wildcard sql-like

我在我的DataSet中有这样的查询(数据库位于.mdf文件中):

SELECT *
FROM TableName
WHERE SomeField LIKE @Param
Run Code Online (Sandbox Code Playgroud)

TableName中含有记录????????SomeField外地.

@Param???????%它的作品完美,但如果@Param??????%?????%,它返回0行.?????%%%也有效.

为什么'%'可以作为单字符通配符使用?

Ric*_*iwi 5

你的问题是你应该使用@param的NVARCHAR,而不是NCHAR

declare @Param nchar(255)
set @Param = N'?????%'
Run Code Online (Sandbox Code Playgroud)

这真的是

N'?????%             ...' (many more spaces)
Run Code Online (Sandbox Code Playgroud)

所以它与你的数据不匹配

N'????????             ...' (padded with spaces)
Run Code Online (Sandbox Code Playgroud)