读书人

在 C# 中透过 SQLite 查询时同时使用

发布时间: 2013-11-08 17:52:14 作者: rapoo

在 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%'

读书人网 >C#

热点推荐