Установка параметра ReportParameter, который не является строкой
В C# я пытаюсь установить параметры отчета для файла SSRS rdlc. Прежде всего, я делаю это правильно?
- GetParameters () для возврата коллекции информации о параметрах
- Создать список новых объектов ReportParameter с назначением имени и значений
- Вызовите SetParameters с новым списком ReportParameter в качестве аргумента.
Если я правильно с этим справлюсь, вот моя загадка. Код значительно упрощен для этого примера:
var reportParams = new List<ReportParameter>();
foreach (var param in report.GetParameters()) {
reportParams.Add(new ReportParameter(param.Name, "1"));
}
report.SetParameters(reportParams);
Когда тип параметра отчета является целым числом, я получаю следующую ошибку при вызове SetParameters:
Значение, предоставленное для параметра отчета intActualWeight, недопустимо для его типа.
Но когда я пытаюсь установить значение параметра как целое число:
reportParams.Add(new ReportParameter(param.Name, 1));
IDE говорит, что не может конвертировать из int в строку. Глядя на перегрузки для нового ReportParameter, он ожидает строку или массив строк.
Что я делаю неправильно? Заранее спасибо!
Стив.
1 ответ
Вот что сработало для меня:
int paramName = 1;
string paramNameAsString = paramName.ToString();
ReportParameter[] reportParameter = new ReportParameter[1];
reportParameter[0] = new ReportParameter("ParamName", paramNameAsString);
ReportViewer1.ServerReport.SetParameters(reportParameter);
ReportViewer1.ServerReport.Refresh();