Как можно передать количество параметров, которое может каждый раз меняться в sql запрос? Мне нужно следующий запрос оформить для всевозможного количества параметров:
SELELT * FROM table WHERE name IN (value1, value2, value3, value4)
Т.е. не обязательно только 4 значения, их может быть и 10, и одно, и каждый раз их количество будет меняться. Я могу собрать строку, как вариант, с нужными значениями, но как ее потом передать в параметризованный запрос? В самом коде применяю все запросы к элементу datagridview через tableAdapter:
this.запрос_продуктовTableAdapter.Fill(...);
п.с. Пишу в VS 15 на C#, БД подключал через элемент datagridview, сама БД представляет собой локальный файл .mdb, запросы пишу через мастера настройки запроса.
SELECT *
FROM table
WHERE FIND_IN_SET(name, @parameter);
Т.е. параметр один, а в нём сколько угодно проверяемых значений через запятую. Тип параметра @parameter - строковый, кавычек и прочей ерунды не требуется, проверка выполняется на точное совпадение, т.е. всякие ведущие и замыкающие пробелы являются значимыми.
PS. Если в поле name возможно наличие запятой, способ неприменим. Квотирование тут не работает.
Попробуйте создать лист параметров и сгенерировать текст запроса:
List<string> sqlParams = new List<string>();
sqlParams.Add("value1");
sqlParams.Add("value2");
sqlParams.Add("value3");
sqlParams.Add("value4");
sqlParams.Add("value5");
var sqlCommandText = string.Format("SELELT * FROM table WHERE name IN ({0})", string.Join(",", sqlParams));
MessageBox.Show(sqlCommandText);
Нужно еще учитывать тип параметра, для строкового нужно еще добавить ' - "'value1'".
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости