SQL Server存储过程无法识别string.empty

use*_*285 2 c# sql sql-server

string.empty从C#传递到SQL Server中的存储过程.

我用这string.empty一个like条件.

seg_cdstring.empty从C#传入.

LIKE '%' + @SEG_CD + '%'
Run Code Online (Sandbox Code Playgroud)

但它取得了0条记录.

但是当我在存储过程中这样做时:

LIKE '%' + '' + '%'
Run Code Online (Sandbox Code Playgroud)

它获取正确的行数.

我尝试在C#中修剪价值,然后它也无法正常工作.

在C#中SEG_CD是一个字符串,在存储过程中,SEG_CDchar(3).

任何帮助表示赞赏.

mar*_*c_s 6

你的问题是SQL数据类型 - char(3)意味着字符串总是长三个字符 - 用空格填充到它定义的长度.

所以你真的要检查

LIKE '%   %'
Run Code Online (Sandbox Code Playgroud)

它似乎没有找到.

你应该VARCHAR(3)在SQL中使用- 那么你的字符串将只有它真正的!在您传入的情况下string.Empty,它将是0个字符长