2017-05-08 2 views
0

失敗しました。私はそれを実行しようとしたときしかし、それは示した:負荷レポートは、私はクリスタルレポートを表示するためのC#.NETでアプリケーションを1つ作成し

An unhandled exception of type 'CrystalDecisions.Shared.CrystalReportsException' occurred in CrystalDecisions.CrystalReports.Engine.dll Additional information: Load report failed..

これは私がしようとしたものです:

path.Load(Application.StartupPath + "C:\\Report_InvoiceRPT.rpt"); 

答えて

1

connect(); 
sql = "select INVOICE.[InvoiceNo], [InvoiceDate],[CustId],Subtotal,Pid,Qty ,Rate,amount from INVOICE inner join invoicedetails on INVOICE.[InvoiceNO]= invoicedetails.[InvoicoNo] where invoicedetails.[InvoicoNo] = '" + INVID+ "' "; 
objcmd = new SqlCommand(sql, objcon); 
objda.SelectCommand = objcmd; 
Mydataset.Clear(); 
objda.Fill(Mydataset "dis"); 
path.Load(Application.StartupPath + "C:\\Report_InvoiceRPT.rpt"); 
path.SetDataSource(Mydataset.Tables["dis"]); 
crystalReportViewer1.ReportSource = path; 
crystalReportViewer1.RefreshReport(); 

次は私にエラーを与えているラインであります

Application.StartupPath + "C:\\Report_InvoiceRPT.rpt"とどのようなパスがありますか? このパスは存在しません。アプリケーションの起動パスをハードコーディングされたファイルパスC:\\Report_InvoiceRPT.rptと連結しています。

常に2つの文字列のパスを組み合わせることPath.Combine()を使用しています。 Path.Combine()は、セパレータを複製しないように最初のパスが最後にセパレータを既に持っているかどうかをチェックするので、この方法で二重パスセパレータを避けることができます。さらに、結合するパス要素に無効な文字が含まれているかどうかを確認します。

追加のチェックFile.Exists()は、アプリケーションをより堅牢にするだけです。

関連する問題