2

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

SELECT BANDID, BANDNAME
FROM WOODSTOCK
WHERE BANDNAME LIKE '%THE%'

..它只是花花公子,并返回一堆行。但是,代码中大概是等价的:

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

...不返回任何记录。

4

2 回答 2

9

好吧,“大概等价”显然不等价,因为它不起作用。您的参数名称在引号内,因此不会被视为参数。我怀疑你想要:

const string sql = @"SELECT BANDID, BANDNAME
            FROM WOODSTOCK
            WHERE BANDNAME LIKE :BANDNAMEPORTION";
. . .
ocmd.Parameters.Add("BANDNAMEPORTION", "%" + BandNamePortion + "%");
于 2012-06-22T18:07:21.233 回答
5

另一种选择是

const string sql = @"SELECT BANDID, BANDNAME
        FROM WOODSTOCK
        WHERE BANDNAME LIKE '%' + @BANDNAMEPORTION + '%';";
. . .
ocmd.Parameters.Add("BANDNAMEPORTION", BandNamePortion);
于 2012-06-22T18:10:37.940 回答