日期:2014-05-17  浏览次数:21528 次

在 C# 中通过 SQLite 查询时,同时使用 like 与 %% 与@Param0 不起任何作用
Hi,

在 C# 中通过 SQLite 查询时,同时使用 like 与 %% 与@Param0 不起任何作用。



String sql1 = "select * from test where something like @Param0";
String sql2 = "select * from test where something like '%@Param0%'";

...
query.Parameters.Add(new SQLiteParameter("@Param0", "Hello"));
....



在上面SQL中,如果只使用 @Param0 的情况下,则 sql1 会查找到 Hello 的记录,
但是,如果我想同时查找 Hello123 的时候,通过 sql2 却无法实现,sql2 的查询结果为空。

请问,如果在使用  query.Parameters.Add 的方式下(即通过使用参数),使用 like 能够实现 '%Hello%' 的功能??
难道在使用 '%中间的值%' 的时候,不能使用 @Param? 

请指点,谢谢。

------解决方案--------------------
String sql2 = "select * from test where something like '%'+@Param0+'%'";
 
------解决方案--------------------
象你那样写sql2,结果是变量的值没有被替换,结果就是:
select * from test where something like '%@Param0%'



而这个:
select * from test where something like '%'+@Param0+'%'
结果是:
select * from test where something like '%hello%'