C# LocalReport有时在渲染时挂起

C# LocalReport有时在渲染时挂起,c#,rdlc,C#,Rdlc,在C#/WPF应用程序中生成RDLC报告时,有时会挂起render(调用render方法不会返回) 报表数据来自一个C#对象(该对象预先填充了PostgreSQL数据库中的数据),因此此问题与SQL无关 我想知道: 我怎样才能找到原因呢 是否有任何方法可以让用户在报表生成挂起时终止它 使用块(如中所示)将报告生成嵌入到中并不能解决问题 using (LocalReport report = new LocalReport()) { report.ReportPath = @"C:\Pat

在C#/WPF应用程序中生成RDLC报告时,有时会挂起render(调用
render
方法不会返回)

报表数据来自一个C#对象(该对象预先填充了PostgreSQL数据库中的数据),因此此问题与SQL无关

我想知道:

  • 我怎样才能找到原因呢
  • 是否有任何方法可以让用户在报表生成挂起时终止它
  • 使用块(如中所示)将报告生成嵌入到
    中并不能解决问题

    using (LocalReport report = new LocalReport())
    {
        report.ReportPath = @"C:\Path\To\MyReport.rdlc";
    
        // Get the report data from db and fill it into MyReportData object.
        MyReportData data = CreateReportData();
    
        ReportDataSource headerDataSource = new ReportDataSource();
        headerDataSource.Name = "HeaderDataSet";
        headerDataSource.Value = data.Header;
        report.DataSources.Add(headerDataSource);
    
        // Add more data sources ...
    
        // No report parameters are being used
    
        report.Refresh();
    
        pdfData = report.Render("PDF"); // here it hangs sometimes
    }
    

    如上所述,
    render
    -调用有时会挂起。关闭应用程序并再次生成完全相同的报告后,它会工作。

    报告失败时是否包含任何行?当查询失败时,它包含多少行?我不确定您所说的行是什么意思。报告包含一些表,所有这些表加起来大约有10页长。查询结果中的行数。您使用的是什么版本的SQL Server?数据库有多大?问题可能与数据库碎片化有关,尤其是在使用SQL Server Express的情况下。我不是在使用SQL Server,而是在使用PostgreSQL。报表数据不是直接来自SQL结果集,而是来自C#对象。所以我的问题与行数无关。对任何数据库的任何查询都会返回一行数据!!!报告失败时是否包含任何行?当查询失败时,它包含多少行?我不确定您所说的行是什么意思。报告包含一些表,所有这些表加起来大约有10页长。查询结果中的行数。您使用的是什么版本的SQL Server?数据库有多大?问题可能与数据库碎片化有关,尤其是在使用SQL Server Express的情况下。我不是在使用SQL Server,而是在使用PostgreSQL。报表数据不是直接来自SQL结果集,而是来自C#对象。所以我的问题与行数无关。对任何数据库的任何查询都会返回一行数据!!!