Подтвердить что ты не робот

С# SQLite Параметрированный выбор Использование LIKE

Я пытаюсь выполнить SQL-запрос, например

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

Это отлично работает в обычном SQL, но когда я использую System.Data.SQLite в С#, он работает только с литералом, а не с параметром, например

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

Это не возвращает результатов.

4b9b3361

Ответ 1

Вы не можете этого сделать. Параметры должны быть полными значениями - это не просто подстановка строк в SQL. Вы могли бы сделать это вместо этого:

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

Ответ 2

Самый простой способ сделать это - использовать "||"

Использование:

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

Вместо:

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

Я уже ответил здесь