水晶报告加载失败

时间:2012-02-22 05:16:03

标签: c# asp.net crystal-reports

我的水晶报告在执行时崩溃,我能通过网站查看我的报告,但几分钟后我的报告崩溃了,asp.net告诉我加载报告失败。实际发生了什么问题?它会在执行期间崩溃吗?

protected void Page_Load(object sender, EventArgs e)
{
    //load report
    ReportDocument RD = new ReportDocument();

    //base on App_Code xsdfile name
    top5movie ds = new top5movie();

    DataTable dt= new DataTable();
    dt.TableName = "Report";
    dt = getAllOrders().Tables[0];
    ds.Tables[0].Merge(dt);

    RD.Load(Server.MapPath("~/CrystalReport2.rpt"));
    RD.SetDataSource(ds);



    CrystalReportViewer1.ReportSource = RD;


    //end load report
}

//report function
public DataSet getAllOrders()
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    SqlCommand cmdSelect = new SqlCommand("selectTop5Movie",conn);
    DataSet ds = null;
    SqlDataAdapter dts;
    try
    {
        conn.Open();
        cmdSelect.Connection = conn;

        ds = new DataSet();
        dts = new SqlDataAdapter(cmdSelect);
        dts.Fill(ds, "movieTitle");
        dts.Fill(ds, "userName");
         dts.Fill(ds, "uploadDate");
         dts.Fill(ds, "movieClicks");

    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message);
    }
    finally
    {
        cmdSelect.Dispose();
        if (conn.State != ConnectionState.Closed)
            conn.Close();
    }
    return ds;
}

2 个答案:

答案 0 :(得分:1)

ReportDocument RD

您没有在using之后关闭并处理此对象。 使用

using(ReportDocument RD = new ReportDocument())
{
}

RD.Close()
RD.Dispose()

使用后。

您可以使用CrystalReport的实例数限制(默认值 75 ) 你可以在regedit

中看到
  

“HKEY_LOCAL_MACHINE \ SOFTWARE \ SAP BusinessObjects \ Crystal Reports for .NET Framework 4.0 \ Report Application Server \ Server \ PrintJobLimit”

答案 1 :(得分:0)

在您的.rpt属性(复制到输出目录)中更改为复制为更新或复制始终。