Ошибка проверки параметров. Невозможно предоставить допустимые значения для всех параметров. (rsParameterError) SSRS 2008

#reporting-services #ssrs-2008

#службы отчетов #ssrs-2008

Вопрос:

Я передаю параметр со страницы aspx на сервер отчетов и получаю это исключение. Вот мой код для установки параметров отчета.

 ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://zeeshankhatri-p/ReportServer_MSSQLSERVER2012");
ReportViewer1.ServerReport.ReportPath = "/DBAReporting/Clients";

ReportParameter p = new ReportParameter();
p.Name = "clientName";
p.Values.Add("Bank Alfalah");

ReportViewer1.ServerReport.SetParameters(p);
  

вот свойства параметра:

Выберите видимость параметра = Внутренняя

Разрешить пустое значение = проверено

Разрешить нулевое значение = проверено

Доступные значения = Нет

Значения по умолчанию = нет значения по умолчанию

Свойства набора данных:

Запрос:

Тип запроса = хранимая процедура

Параметры:

Имя параметра = @ClientName

Значение параметра = [@ClientName]

Не могли бы вы подсказать, что я сделал не так в моем случае.?

Ответ №1:

Существует ряд проблем, которые могут вызвать это:

  • Запрос доступных значений параметров при выполнении таким образом не содержит записей, поэтому вы не можете присвоить допустимое значение
  • Параметр скрыт и не может быть назначен таким образом. Проверьте настройки параметров отчета на сервере и при необходимости измените их.
  • Вы внесли некоторые изменения в параметр отчета в процессе разработки, которые не развертываются на сервере отчетов. Обратите внимание, что некоторые атрибуты параметров, такие как значение по умолчанию, не перезаписываются при повторном развертывании отчета, чтобы не потерять настройки сервера. Откройте настройки отчета и проверьте настройки параметров отчета на сервере, чтобы убедиться, что они соответствуют тем, которые у вас есть в разработке.

Возможно, проще удалить отчет сервера и снова развернуть, чтобы вернуться к настройкам отчета о разработке.

Вы также пытаетесь передать один объект параметра в функцию, которая позволяет передавать множество параметров.

SetParameters принимает IEnumerable<ReportParameter> (обычно a List ), а не только один ReportParameter объект. Вам необходимо внедрить параметр в IEnumerable объект. Вот простой способ сделать это в одной строке кода:

 ReportViewer1.ServerReport.SetParameters(new ReportParameter[] { p });
  

Комментарии:

1. Я изменился в соответствии с вашим предложением, но он по-прежнему выдает ошибку.

2. Добавлено еще несколько вещей для проверки.