2017-03-29 34 views
-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"); 

虽然印刷:

enter image description here

enter image description here

堆栈跟踪:

enter image description here

+0

你的代码在做什么。用代码发布一些逻辑。不只是发生错误的几张照片。 – Emad

+0

当得到异常时,堆栈跟踪是什么? – Rob

+0

更新,请检查。 –

回答

0

最后我使用的BackgroundWorker解决了问题。

相关问题