Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp MVC加载报告失败_C#_Asp.net Mvc_Crystal Reports - Fatal编程技术网

C# Asp MVC加载报告失败

C# Asp MVC加载报告失败,c#,asp.net-mvc,crystal-reports,C#,Asp.net Mvc,Crystal Reports,我第一次尝试将crystal report与asp mvc一起使用,但在加载报告时遇到一些问题: ReportClass rptH = new ReportClass(); rptH.FileName = Server.MapPath("Reports/TestReport.rpt"); rptH.Load(); 这是rptH.FileName的值 "rassdk://D:\\ProjectDir\\Pro\\Pro.WebUI\\Reports

我第一次尝试将crystal report与asp mvc一起使用,但在加载报告时遇到一些问题:

ReportClass rptH = new ReportClass();
            rptH.FileName = Server.MapPath("Reports/TestReport.rpt");
            rptH.Load();
这是rptH.FileName的值

"rassdk://D:\\ProjectDir\\Pro\\Pro.WebUI\\Reports\\TestReport.rpt"
但是在
Load()
上,我得到异常:

加载报告失败

报表没有任何数据源,它只是一个带有一些文本的空白报表。
也许这很重要。我将项目设置为在本地IIS上运行(不在VS中)



更新

我对代码做了一点修改,但现在出现了一些其他错误(我还复制了inetpub/wwwroot中的项目)。这就是错误:

值不能为null。参数名称:path2

现在的路径是:

"C:\\inetpub\\wwwroot\\MyProject\\Pro\\Pro.WebUI\\Reports\\TestReport.rpt"
新代码是:

ReportClass rptH = new ReportClass();
            var path = Server.MapPath("Reports/TestReport.rpt");

            rptH.Load(path);

我以前用ASP.NET做过Crystal报告。不确定你是否能做到这一点,但这对我来说很成功

 ReportDocument rptDoc = new ReportDocument();
 rptDoc.Load(Server.MapPath("TestReport.rpt");

 Response.Buffer = False
 Response.ClearContent()
 Response.ClearHeaders()

 rptDoc.ExportToDisk(ExportFormatType.PortableDocFormat, "TestReport.rpt")
 rptDoc.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, True, "MyReport")

如果定义了参数,请检查rpt文件。 如果有,但您不需要,请将其删除。 如果需要,请在代码中为它们提供值和说明。 经验:

试试这个

  ReportDocument rd = new ReportDocument();
  string FileName = Server.MapPath("~/Report") + "//YourReportName.rpt";
  rd.Load(FileName);
  rd.SetDataSource(dt);

我应该在inetpub中的项目上添加一些安全角色吗?或者类似的东西,它是有线的?若我把报表url放在浏览器中,它会下载我的.rpt文件。所以这条路是好的。但应用程序找不到它:(您想用它做什么?在浏览器中按需显示?我添加了几行。document对象在导出报告时有几个不同的选项。请查看这两个选项以及其他选项。我想将其导出为PDF。我尝试了您的建议,但我总是做什么,我得到的
加载报告失败。  ReportDocument rd = new ReportDocument();
  string FileName = Server.MapPath("~/Report") + "//YourReportName.rpt";
  rd.Load(FileName);
  rd.SetDataSource(dt);