c# - C#SQLite参数化选择使用LIKE

c# - C#SQLite参数化选择使用LIKE,第1张

我正在尝试执行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");

这不会返回任何结果。

最佳答案:

2 个答案:

答案 0 :(得分:23)

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

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

答案 1 :(得分:6)

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

使用:

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

代替:

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

我已经回答了here

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复