-2
我的项目工作正常,但在尝试打印甚至显示报告时,我有一段时间出现这个奇怪的错误。有时候它可以正常工作,但是当我尝试多次打印多次报告时,它会引发这个错误。我花了几个星期试图找出解决方案。我检查过多次,没有递归循环,现在我只是拉我的头发。任何帮助将不胜感激。mscorlib.dll中发生StackOverflowException
初始化在的Form_Load:
ReportDocument cryRptEdu = new ReportDocument();
TableLogOnInfos crtableLogoninfosEdu = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfoEdu = new TableLogOnInfo();
ConnectionInfo crConnectionInfoEdu = new ConnectionInfo();
try
{
cryRptEdu.Load(rptpathEdu);
}
catch (Exception x)
{
KryptonMessageBox.Show(x.Message, "Error Occured", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
}
crConnectionInfoEdu.ServerName = Program.serverName;
crConnectionInfoEdu.DatabaseName = Program.dbName;
crConnectionInfoEdu.UserID = Program.saName;
crConnectionInfoEdu.Password = Program.pw;
Tables CrTables = cryRptEdu.Database.Tables;
foreach (Table CrTable in CrTables)
{
crtableLogoninfoEdu = CrTable.LogOnInfo;
crtableLogoninfoEdu.ConnectionInfo = crConnectionInfoEdu;
CrTable.ApplyLogOnInfo(crtableLogoninfoEdu);
}
在打印按钮:
cryRptEdu.SetParameterValue("percentage", percentage);
cryRptEdu.SetParameterValue("grades", grade);
cryRptEdu.SetParameterValue("position", position);
cryRptEdu.SetParameterValue("attendance", attendance);
cryRptEdu.SetParameterValue("midTermPercentage", midTermPercentage);
cryRptEdu.SetParameterValue("finalPercentage", finalPercentage);
cryRptEdu.SetParameterValue("aggregatePercentage", aggregatePercentage);
cryRptEdu.SetParameterValue("midTermGrade", midTermGrade);
cryRptEdu.SetParameterValue("finalGrade", finalGrade);
cryRptEdu.SetParameterValue("aggrgateGrade", aggregateGrade);
cryRptEdu.SetParameterValue("tl1", tl1);
cryRptEdu.SetParameterValue("tl2", tl2);
cryRptEdu.SetParameterValue("pl1", pl1);
cryRptEdu.SetParameterValue("pl2", pl2);
if (print)
cryRptEdu.PrintToPrinter(1, true, 1, 1);
else
cryRptEdu.ExportToDisk(ExportFormatType.PortableDocFormat, exportPath + ID + ".pdf");
虽然印刷:
堆栈跟踪:
你的代码在做什么。用代码发布一些逻辑。不只是发生错误的几张照片。 – Emad
当得到异常时,堆栈跟踪是什么? – Rob
更新,请检查。 –