0

RDLC を使用してレポートを作成しています。Visual Studio 2010 Ultimate + SQL Server 2012 Express

InvoiceID は文字列です。これは、Dataset TableAdapter のパラメーターを使用したクエリです。この SQL を DataSet の Query Builder 部分に入力しました。

SELECT        SequenceNo, InvoiceID, VisitID, CaseNo, WalkinID, Payment, Invoice_date, Status
FROM            INVOICE
WHERE        (InvoiceID = @InvoiceID)

Query Builder で Execute Query をクリックすると、値を要求されます。20130508-650875に入ります。引用符は一切ありません。その後、私が望んでいた結果が得られます。

次に、プログラムを実行してレポートを生成します。

C# の部分:

 INVOICETableAdapter.Fill(dataset.INVOICE, InvoiceID);
    MessageBox.Show(InvoiceID.ToString()); //just to confirm what value the parameter is getting

さて、レポートの表からは何も出てきません。どうしてか分かりません。レポートのテーブルには、ドラッグした列のヘッダーのみが含まれるようになりました。

クエリの ---WHERE--- 部分を削除しようとしたところ、多くの結果が得られました。

SELECT        SequenceNo, InvoiceID, VisitID, CaseNo, WalkinID, Payment, Invoice_date, Status
FROM            INVOICE
//WHERE        (InvoiceID = @InvoiceID)

ここで、パラメーターを指定してレポートを実行すると、レポートのテーブルが空白になる理由をお聞きしたいと思います。ただし、パラメーターがない場合は、すべての結果が生成されます。それはクエリでしょうか?

4

1 に答える 1

0

それは明らかにクエリですが、おそらくあなたが期待しているほど不吉な問題ではありません. 最初のステップは、パラメーターがクエリが実際に設定されていることを確認することです。ここで提供される情報では、where 句がすべての行を除外しているように聞こえるため、パラメーターが null のままであるか、期待どおりに設定されていません。

コードで query/sproc 呼び出し全体を出力し、吐き出されたものを正確に取得して、手動で実行してみてください。

于 2013-05-10T21:08:04.000 に答える