Как выполнить параметризованный SQL-запрос (используя LIKE with @ variable)
Я хочу сделать запрос select с вводом от пользователя, какой правильный синтаксис LIKE использовать, где я должен установить % в первой строке или во второй?
var areaName = "SELECT AOIId FROM dbo.AreaOFInterest WHERE AOIName LIKE @AOIName ";
db.Database.ExecuteSqlCommand(areaName, @searching);
1 ответ:
Если вы хотите найти все имена, начинающиеся с указанных символов, укажите
LIKE @AOIName + '%'. Для всех имен, содержащих строку, укажитеLIKE '%' @AOIName + '%'.Вы также можете захотеть экранировать как подстановочные знаки в предоставленной строке поиска, чтобы они рассматривались как литералы:
var aoiNameParameterValue = AOIName.Replace("[", "[[]").Replace("%", "[%]").Replace("_", "[_]").Replace("^", "[^]");