为什么我的Like查询被Toad喜欢但C#不喜欢?

B. *_*non 2 c# sql oracle sql-like

如果我在Toad中运行此查询:

SELECT BANDID, BANDNAME
FROM WOODSTOCK
WHERE BANDNAME LIKE '%THE%'
Run Code Online (Sandbox Code Playgroud)

..它只是花花公子,并返回一堆行.但是,大概相当于代码:

const string sql = @"SELECT BANDID, BANDNAME
            FROM WOODSTOCK
            WHERE BANDNAME LIKE '%:BANDNAMEPORTION%'";
. . .
ocmd.Parameters.Add("BANDNAMEPORTION", BandNamePortion);
. . .
Run Code Online (Sandbox Code Playgroud)

...不返回任何记录.

Jon*_*eet 9

好吧,"大概相当于"显然不等同,因为它不起作用.您的参数名称在引号内,因此不会将其视为参数.我怀疑你想要:

const string sql = @"SELECT BANDID, BANDNAME
            FROM WOODSTOCK
            WHERE BANDNAME LIKE :BANDNAMEPORTION";
. . .
ocmd.Parameters.Add("BANDNAMEPORTION", "%" + BandNamePortion + "%");
Run Code Online (Sandbox Code Playgroud)


Cla*_*edi 5

另一种选择是

const string sql = @"SELECT BANDID, BANDNAME
        FROM WOODSTOCK
        WHERE BANDNAME LIKE '%' + @BANDNAMEPORTION + '%';";
. . .
ocmd.Parameters.Add("BANDNAMEPORTION", BandNamePortion);
Run Code Online (Sandbox Code Playgroud)