ユーザーから 2 つの値を受け取り、それをクエリに入力して、それらのエントリに関連付けられたデータを検索するレポートを作成しています。
たとえば、従業員、パフォーマンス指標、およびそれらに関連付けられた値のリストがある場合、ユーザーは従業員名/パフォーマンス指標を選択すると、その指標に対する従業員のスコア情報を取得できます。
2 つのパラメータがあり、それぞれが従業員名とメジャーの個別のリストを取得する SQL クエリから入力されています。また、下の表では、~ 'WHERE name = @Name AND measure = @Measure' に基づいて情報を取得するだけですが、レポートをローカルで実行するために [プレビュー] をクリックすると、次のエラーが表示されます: "レポートの実行に必要な 1 つ以上のパラメータが指定されていません"
パラメータの値をテキスト ボックスに直接入力すると、値が正しく入力されるため、パラメータが正しく機能していることがわかります。また、クエリを変更してパラメータを 1 つだけ受け入れるようにすると (つまり、WHERE measure = @Measure)、クエリは機能します。
パラメータが機能していて適切に入力されていることはわかっているので、なぜこのエラーが発生するのかわかりません。
ベストアンサー1
.NET 4.0 でローカル レポート (.rdlc ファイル内) を使用していて、パラメータ値の 1 つに空の文字列が含まれていたときに、この動作が発生しました。パラメータの設定は正しかったのですが、
report.SetParameters(
new List<ReportParameter> {
new ReportParameter("Title", Messages.Title),
new ReportParameter("SubTitle", Messages.Subtitle))
}
);
これは、両方のパラメータに実際に文字が含まれている場合にのみ機能し、そうでない場合は前述の例外がスローされました。