C#SQLite参数化选择使用LIKE

我正在尝试做一个SQL查询,如

SELECT * FROM [TABLE] WHERE hostname LIKE '%myhostname%'; 

这在纯SQL中工作正常,但是当我在C#中使用System.Data.SQLite时,它只适用于文字,而不是参数,例如

 string sel = "SELECT * FROM [TABLE] WHERE hostname LIKE '%@host%'"; ... command.Parameters.AddWithValue("@host", "myhostname"); 

这不会返回任何结果。

你不能这样做。 参数必须是完整的值 – 它不仅仅是SQL的字符串替换。 你可以这样做:

 string sel = "SELECT * FROM [TABLE] WHERE hostname LIKE @host"; ... command.Parameters.AddWithValue("@host", "%myhostname%"); 

最简单的方法是使用’||’

使用 :

 const string qry = "SELECT SiteNum FROM WorkTable WHERE WTName LIKE @wtName || '%' "; 

代替:

 const string qry = "SELECT SiteNum FROM WorkTable WHERE WTName LIKE @wtName%"; 

我已经在这里回答了