这是一个有效的代码
string connection = "Server=.\\sqlexpress;Database=dataSet_CrystalReport;Integrated Security=True;";
SqlConnection Con = new SqlConnection(connection);
string select = "SELECT * FROM tblAccountDetails";
SqlDataAdapter adapter = new SqlDataAdapter(select, Con);
DataSet dst = new DataSet();
adapter.Fill(dst, "tblAccountDetails");
crystalRep.Load(@"C:\Users\Boss\Desktop\dataCrystalReport_Experiment\dataCrystalReport_Experiment\CrystalReport1.rpt");
crystalRep.SetDataSource(dst);
crystalReportViewer1.ReportSource = crystalRep;
我想要的是这段代码可以工作:
string connection = "Server=.\\sqlexpress;Database=dataSet_CrystalReport;Integrated Security=True;";
SqlConnection Con = new SqlConnection(connection);
string select = "SELECT * FROM tblAccountDetails";
SqlDataAdapter adapter = new SqlDataAdapter(select, Con);
DataSet dst = new DataSet();
adapter.Fill(dst, "tblAccountDetails");
string filename = Path.GetFullPath("CrystalReport1.rpt");
crystalRep.Load(filename); // <-- Difference!
crystalRep.SetDataSource(dst);
crystalReportViewer1.ReportSource = crystalRep;
字符串文件名相当于第一个有效的代码 它有这样的路径:
C:\用户\老板\桌面\ dataCrystalReport_Experiment \ dataCrystalReport_Experiment \ CrystalReport1.rpt
我不知道为什么它无法加载报告?
答案 0 :(得分:0)
Path.GetFullPath
方法不会“只是”在任何地方为您找到该文件。根据应用程序的工作目录,这可能有效或无效。 (在这种情况下,文件必须在工作目录中才能使调用工作)
通常,您为Path.GetFullPath
提供相对文件名,该方法会为您返回完整的文件名。
在Visual Studio中包含该报表,并告诉它将其复制到输出目录。然后,您只能使用文件名引用它。无需路径。