在Crystal报告加载文件....
时出现类似无效报告文件的错误OrderWindow objRpt; objRpt = new OrderWindow(); 尝试 { string str = ConfigurationManager.ConnectionStrings [" ConnData"]。ConnectionString.ToString(); SqlConnection con = new SqlConnection(str); OrderDelivery Od = new OrderDelivery(); Od.Activate(); DataSet ds = Od.GetProductDetails(); objRpt.SetDataSource(DS);
ReportDocument rd = new ReportDocument();
ConnectionInfo info = new ConnectionInfo();
info.DatabaseName = "BillingAndAccounts";
info.UserID = "sa";
info.Password = "sai123";
SetDBLogonForReport(info, rd);
rd.Refresh();//Here am Getting Error...
rd.VerifyDatabase();
crystalReportViewer1.ReportSource = objRpt;
答案 0 :(得分:0)
错误显示,未获取水晶报告文件的路径。 通常,良好的编码是将所有水晶报告设置在工作目录中的一个文件夹中,只需在web.config中创建一个条目即可访问
之类的路径<add key="CrystalReportFilePath" value="\Reports"/>
无论何时访问或使用文件,只需在上面添加文件名(与web.config中的连接字符串相同),如
var ReportName = ConfigurationManager.AppSettings["CrystalReportFilePath"]
此代码永远不会出现上述错误,代码也可以维护。
答案 1 :(得分:0)
问题是Crystal Reports运行时继续在C:驱动器上查找报告文件,即使该驱动器不存在,并且它在日志文件中报告它正在查找正确驱动器上的报告信。
要解决此问题,您需要将C:驱动器的驱动器映射为指向实际驱动器。
如果您不知道计算机的计算机名称,请右键单击“我的电脑”图标,然后转到“属性”,再转到“计算机名”选项卡。在完整的计算机名称:行,我们需要一切。例如,如果它说jason.wasp.com,我们只需要知道&#34; jason&#34;。此外,对于此示例,我们将使用I:作为现有驱动器。
要映射驱动器,请打开“我的电脑”图标,然后在“工具”菜单上选择“映射网络驱动器”。对于Drive,请选择C:。如果您没有看到C:作为可用选项,则该字母可能已分配给计算机管理的磁盘管理组件中的可移动驱动器。将该驱动器更改为另一个字母;然后C:将可用于制图。