我有一個在VS 2008中爲.net 2編寫的應用程序,升級到VS 2010併爲.net 4構建。在這個應用程序中是Crystal Report 。報告應該完全沒有數據庫交互。我手動設置我的項目中的一個對象的各種ITextObject字段。從VS 2008升級到VS 2010後出現「數據庫登錄失敗」錯誤
實施例:
to = (CrystalDecisions.CrystalReports.Engine.TextObject)crystalPrint.Section2.ReportObjects["tbName"];
to.Text = visitor.first + " " + visitor.last;
to = (CrystalDecisions.CrystalReports.Engine.TextObject)crystalPrint.Section2.ReportObjects["tbCompany"];
to.Text = visitor.company;
其中visitor
是我是從拉數據的類。
同樣,這個報告應該完全沒有數據庫交互,但它不知何故認爲它應該是一個數據庫。
以下是有關堆棧跟蹤: CrystalDecisions.ReportAppServer.DataSetConversion
編輯:它吹起來,當我打電話.PrintToPrinter(1, false, 1, 0);
*編輯/ UPDATE * 我捅到app.config文件,和我發現這個小塊
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
在應用程序中,我的報告打印。與註釋掉,它炸燬.....
編輯3:
更多的源代碼:
cryBadge crystalPrint = new cryBadge();
crystalPrint.ReportOptions.EnableSaveDataWithReport = false;
//NOTE: pi is an internal object used to find printer information.
crystalPrint.PrintOptions.PrinterName = pi.PrinterName;
numSize = pi.FindPaperSizeIndex(height, wid);
to = (CrystalDecisions.CrystalReports.Engine.TextObject)crystalPrint.Section2.ReportObjects["tbName"];
to.Text = visitor.first + " " + visitor.last;
to = (CrystalDecisions.CrystalReports.Engine.TextObject)crystalPrint.Section2.ReportObjects["tbCompany"];
to.Text = visitor.company;
crystalPrint.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape;
crystalPrint.PrintToPrinter(1, false, 1, 0);
爲什麼不嘗試將項目從.net 4.0降級到3.5重新編譯它,看看它是否工作..如果它這樣做告訴我,CrystalReports大會可能不支持版本4.0嘗試查閱文檔,看看支持哪些版本。 。您可能需要升級到更高版本的.dll和/或程序集。 – MethodMan
好吧,現在它在不同的地方爆炸了。 'crystalPrint.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape;'它拋出了一個'System.Reflection.TargetInvocationException'如果我在.net 3中,看起來我不能設置紙張方向。5 – CurtisHx
這聽起來像你可能有一些額外的或隱藏的問題,根據你發佈的代碼示例無法確定..你可以發佈支持當前錯誤的相關代碼示例.. – MethodMan