我有一个在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