2017-08-24 16 views
3

Crystalレポートのプログラムを作成していますが、最初にレポートを実行するときに、同じレポートを2回目に実行するとこのエラーが発生します。C#Crystalレポートの引数が範囲外の例外

私はSQL Serverへのビューを使用して自分のデータを取得します。

cmd = new SqlCommand("Select * From referral where referralNo = '" + 
lblReferral.Text + "' and clientNo = '" + cbClientNo.Text + "'", con); 
cmd.CommandType = CommandType.Text; 
da.SelectCommand = cmd; 
da.Fill(ds, "referral"); 
rp.SetDataSource(ds); 
f3.crt.ReportSource = rp; 
f3.Show(); 
rp.Close(); 

このエラーが発生しています。その後、

An unhandled exception of type 'System.ArgumentOutOfRangeException' 
occurred in System.Windows.Forms.dll 

Additional information: Index 0 is out of range. 

これらの私は私の問題への答えを考え出した

CrystalReport1 rp = new CrystalReport1(); 
SqlDataAdapter da = new SqlDataAdapter(); 
DataSet ds = new DataSet(); 
reportViewer f3 = new reportViewer(); 

Error @reviewing the report

+0

ここで、作成されたレポートインスタンスは( 'crt')ですか?それは設計時にf3に追加されたコントロールですか?完全な例外呼び出しスタックを取得してここに投稿してください。 * lblreferralやcbclientnoのテキストが編集可能な場合、コードがスクリプトに安全でないことを知らせるヒント* – dlatikay

+0

アドバイスをいただきありがとうございます。彼らはクリスタルレポートであり、f3はreportviewerで使用されているフォームですこれらのデータをすべて取得するためのビューでは、lblreferralは自動生成番号で、cbclientはclientnoのみを格納するコンボボックスです –

+0

okもう一度実行する前にすべてのインスタンスを作成しますか、既存のインスタンスを再利用していますか? – dlatikay

答えて

1

インスタンスである、それはプログラムので、引数の例外を促し、私の代わりにform.Show()form.ShowDialog()を経由して、フォームと呼ばれます。

関連する問題