С# 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");
Это не возвращает результатов.
Ответы
Ответ 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%";
Я уже ответил здесь