当前位置: 代码迷 >> C# >> winForm里水晶报表加载失败,该怎么处理
  详细解决方案

winForm里水晶报表加载失败,该怎么处理

热度:87   发布时间:2016-05-05 04:04:59.0
winForm里水晶报表加载失败
求指点。。


private void Form_PushReport_Load(object sender, EventArgs e)
        {
            SqlConnection conn = DBConnection.MyConnection();
            conn.Open();

            try
            {
                string sql = "SELECT * FROM "+table;//table是表的名字的字符串
                SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                sda.Fill(ds, "tmpTable");
                string reportPath = System.Windows.Forms.Application.StartupPath + @"CrystalReport_Push.rpt";
                ReportDocument rd = new ReportDocument();
                rd.Load(reportPath);
                rd.SetDataSource(ds.Tables[0].DefaultView);
                this.crystalReportViewer1.ReportSource = rd;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message.ToString());//一直抛出异常,提示报表加载失败
            }
            finally
            {
                conn.Close();
            }
       }


ReportDocument rd = new ReportDocument(); 原先这里提示未引用,然后我加了using CrystalDecisions.CrystalReports.Engine;这里没错误了,可运行时抛出异常,加载失败
------解决思路----------------------
看下reportPath的值,有没有对应的报表文件?
------解决思路----------------------
水晶报表文件路径有不对
------解决思路----------------------
路径错误。将你的rpt文件放到bin/Debug目录下,或者

 rd.Load(AppDomain.CurrentDomain.BaseDirectory + "/CrystalReport1.rpt");

------解决思路----------------------
引用:
按你的改了,现在问题成了  该报表中不包含表   但是dataSet里有数据啊。。

1、报表预览有数据么?
2、运行过程中,报表的数据源有记录么?
  相关解决方案