当前位置:编程学习 > C#/ASP.NET >>

水晶报表提示错误,求助

我用的是vs2010,自己网上下载安装的水晶报表。

代码如下:

        //连接数据库
        SqlConnection conn= new SqlConnection(。。。);
        conn.Open();
        DataSet ds=new DataSet();

                string sql = "SELECT * FROM table1 where id="+id+"";
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        da.Fill(ds, "table1");

        //装载设备维护信息
        sql = "SELECT * FROM table2 where device_id=" + id + " ";
        SqlDataAdapter da1 = new SqlDataAdapter(sql, conn);
        da1.Fill(ds, "table2");
                // CrystalReport1.rpt是水晶报表文件的名称;CrystalReportSource1是从工具箱加到页面上的水晶报表数据源对像。

       
      *****CrystalReportSource1.ReportDocument.Load(Server.MapPath@("CrystalReport1.rpt"));******

        CrystalReportSource1.ReportDocument.SetDataSource(ds);

        CrystalReportViewer1.ReportSource = CrystalReportSource1;
        CrystalReportViewer1.DataBind();
*****部分若打开,编译时就会报错,不知道原因。
若封掉,则本地编译能通过,但发布到网站上后就报下面的错,请问什么原因呢?

System.Web.HttpUnhandledException (0x80004005): 引发类型为“System.Web.HttpUnhandledException”的异常。 ---> CrystalDecisions.Shared.CrystalReportsException: 加载报表失败。 ---> System.Runtime.InteropServices.COMException: 不支持的操作。无法在 C++ 堆栈中打开由 JRC 引擎处理的文档。
   在 CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)
   在 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)
   在 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
   --- 内部异常堆栈跟踪的结尾 ---
   在 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
   在 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.get_ProductLocaleID()
   在 CrystalDecisions.ReportSource.CachedObjectReportSource.GetReport(RequestContext context, Boolean bAddToCacheWhenCreated)
   在 CrystalDecisions.Web.CrystalReportSource.get_ReportDocument()
   在 device_change_EquipReportList.Page_Load(Object sender, EventArgs e)
   在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
   在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   在 System.Web.UI.Control.OnLoad(EventArgs e)
   在 System.Web.UI.Control.LoadRecursive()
   在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   在 System.Web.UI.Page.HandleError(Exception e)
   在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   在 System.Web.UI.Page.ProcessRequest()
   在 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   在 System.Web.UI.Page.ProcessRequest(HttpContext context)
   在 ASP.device_device_equipreportlist_aspx.ProcessRequest(HttpContext context) 位置 c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\luna\8c61713a\78e3bff6\App_Web_equipreportlist.aspx.89a75197.g6qfvk2i.0.cs:行号 0
   在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
报表 vs2010 异常 --------------------编程问答-------------------- 路径不对吧,如果是放在要目录下,应该这样
Server.MapPath(@"~CrystalReport1.rpt")
如果放在report文件夹下
Server.MapPath(@"~/Report/CrystalReport1.rpt")




补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,