Страница 1 из 1

where .. in в параметрах запроса

Добавлено: 22 июн 2010, 13:09
iOgre
Вот есть запрос в датасорсах отчета

select ... from
where id in [а вот тут я хочу передать параметр]

как это можно сделать, какой тип должен иметь данный параметр?
id - int

а вот число параметров в in () произвольно
может быть и id in (1)
и id in(5,7)
и id in(1,4,5,6,7,8)

where .. in в параметрах запроса

Добавлено: 23 июн 2010, 12:44
Ivan
Здравствуйте.

Попробуйте использовать следующий вариант:

Код: Выделить всё

            select ... from ... where id in ({var1})
В словаре заведите переменную var1 типа string, в которую через запятую пишите нужные параметры, например "1,4,5,6,7,8".
Это можно сделать из вашего кода или из кода события в самом отчете. Например, пусть параметры передаются в переменной list типа ArrayList:

Код: Выделить всё

            StringBuilder sb = new StringBuilder();
            for (int index = 0; index < list.Count; index++)
            {
                sb.Append(((int)list[index]).ToString());
                if (index < list.Count - 1) sb.Append(",");
            }
            report.Dictionary.Variables["var1"].Value = sb.ToString();
Спасибо.