【问题标题】:Generating report results in an unhandled exception of type 'system.stackoverflowexception' occurred in system.windows.forms.dll生成报告会导致 system.windows.forms.dll 中出现“system.stackoverflowexception”类型的未处理异常
【发布时间】:2014-03-20 03:06:40
【问题描述】:

我正在 Visual Studio 2012 中创建水晶报表,但我不断收到错误

an unhandled exception of type 'system.stackoverflowexception' occurred in system.windows.forms.dll

这是我的表格 4 代码:

public partial class Form4 : Form
{
    public Form4()
    {
        InitializeComponent();
    }

    private void Form4_Load(object sender, EventArgs e)
    {
        CrystalReport1 r = new CrystalReport1();
        maintenance_productDataSetTableAdapters.COLOR_TYPETableAdapter ta = new EBL.maintenance_productDataSetTableAdapters.COLOR_TYPETableAdapter();
        maintenance_productDataSet.COLOR_TYPEDataTable table = ta.GetData();
        r.SetDataSource(table.DefaultView);
        crystalReportViewer1.ReportSource = r;
        crystalReportViewer1.Refresh();
    }
}

Form4 是我开始运行 VS 2012 时的一次加载。

我也尝试过使用 DataSet 但它有同样的错误。带有数据集的代码:

CrystalReport1 rep = new CrystalReport1();
DataSet1TableAdapters.COLOR_TYPETableAdapter ta = new Weeak.DataSet1TableAdapters.COLOR_TYPETableAdapter();
DataSet1.COLOR_TYPEDataTable table = ta.GetData();
rep.SetDataSource(table.DefaultView);
crystalReportViewer1.ReportSource = rep;
crystalReportViewer1.Refresh();

【问题讨论】:

    标签: c# winforms visual-studio-2012 crystal-reports


    【解决方案1】:

    由于 Crystal Report 是使用早期版本的 .NET Framework 开发的,因此您需要将这些行添加到您的 app.config 文件中:

    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
    

    【讨论】:

      【解决方案2】:

      这里可能发生的是以下事件

      1. InitializeComponent 致电CreateControl
      2. CreateControl 引发 Load 事件
      3. Form4_Load 最终调用 Refresh 最终调用 CreateControl

      此时第2步和第3步相互递归,最终导致堆栈溢出异常。要解决此问题,只需将代码从 Form4_Load 方法移动到构造函数中的 InitializeComponent 调用之后

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多