#sql #asp.net
#sql #asp.net
Вопрос:
Select * from table_A WHERE name in (@nameObj)
Моя проблема в том, что я передаю этот объект из кода как
@nameObj = "'" "john" "'" "," "'" "joseph" "'"
Итак, я хочу, чтобы мой окончательный запрос выглядел следующим образом:
Select * from table_A WHERE name in ('john','joseph')
Но он выдает запрос, подобный этому:
Select * from table_A WHERE name in ('''john'',''joseph''')
Комментарии:
1. Вы должны использовать параметры sql
2. @JuanCarlosOropeza, можете ли вы показать, как использовать параметры, если, например, вы заранее не знаете, сколько имен вы хотите использовать в предложении IN?
3. это будет динамический
Ответ №1:
Эта работа для меня
sql = $@" AND Office IN ('{string.Join("','", new string[] { "aa", "bb"})}')";
Но вы должны передать это как параметр sql;
в sql-запросе у вас есть
AND Office IN (@datain)
и в запросе вызова
_dbContext.Offices.FromSql(sql,
new NpgsqlParameter(
"@datain",
$@"'{string.Join("','", new string[] {"aa", "bb"})}')")
)
.ToList();