Установка параметра ReportParameter, который не является строкой

В C# я пытаюсь установить параметры отчета для файла SSRS rdlc. Прежде всего, я делаю это правильно?

  1. GetParameters () для возврата коллекции информации о параметрах
  2. Создать список новых объектов ReportParameter с назначением имени и значений
  3. Вызовите 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();
Другие вопросы по тегам