【问题标题】:Winforms Crystal Report - "Failed to load database information" errorWinforms Crystal Report - “无法加载数据库信息”错误
【发布时间】:2012-11-01 15:31:49
【问题描述】:

我开发了一个小型水晶报表赢表单应用程序,它连接到本地网络中的 Access DB 并显示一组基本报表。

我为此使用了 VS 2010。

我使用“DAO”连接方法在 VS 2010 数据库专家选项中访问数据库(是的,这一切都在 GUI 中完成)。它在我的 32 位开发机器和我测试过的 Win XP VM 机器上工作得很好。

但是,我在 Win 7 64 位 PC 上设置报告并收到此错误。

这些是我在 64 位 Win 7 PC 上进行的安装:

  • .NET Fx 4(64 位)的 SAP Crystal Reports 运行时引擎
  • .NET Framework 4 客户端配置文件(x86 和 x64)

到目前为止,我看到的是 64 位 CR 运行时引擎没有附带 32 位版本的 dll (crdb_dao.dll)。

任何建议...任何解决方法?

感谢您的帮助:-)!

【问题讨论】:

    标签: .net visual-studio-2010 ms-access 64-bit crystal-reports-2010


    【解决方案1】:

    一切都是为了比特

    使用 Access 数据库,您必须注意应用程序的位数:

    • .mdb 文件没有标准的 64 位驱动程序(Windows 中默认有一个用于 32 位的驱动程序)。

    • 要能够从 64 位应用程序访问 .mdb.accdb 数据库,您必须具有 MSOffice 64 位或 Access 64 位或 64 位的 Access Database Engine 驱动程序。
      如果您在该计算机上安装了 MSOffice 或 Access 2007/2010/2013 32 位,您将无法安装 64 位驱动程序,也无法混合搭配 32 位和 64 位 Office 组件。

    解决您的问题

    • 如果您使用.mdb 访问文件,只需明确编译为 32 位(不是 AnyCPU,因为它会尝试在 64 位操作系统中以 64 位启动您的应用程序)。

    • 如果您使用的是.accdb Access 文件,请匹配用户计算机上安装的 Office/Access 的位数,或者,如果没有 Office,请安装 Access Database Engine 驱动程序。

    • 无论如何,如果您的应用程序要部署在混合的 32 / 64 位环境中,您将需要为每个环境显式编译并根据安装在用户的Access Database Engine 或 MSOffice 的位数安装正确的版本机器。

    注意:澄清一下,如果用户的机器上已经安装了 MSOffice 2007/2010/2013,则无需安装 Access Database Engine。

    【讨论】:

    • 感谢您的回复。我想提一下,由于 MS 许可问题,我已经通过 Office 2010 安装了 Access 2007 和 Excel 等其他应用程序。因此,我尝试以 32 位编译 exe 并执行它。我在表单加载本身中收到以下错误:故障存储桶 50,类型 5 事件名称:CLR20r3 响应:不可用 Cab Id:0 问题签名:P1:ho timesheet reports.exe P2:1.0.0.0 P3:50a22541 P4 :CrystalDecisions.CrystalReports.Engine P5:13.0.2000.0 P6:4feae845 P7:32d P8:7 P9:System.TypeInitialization P10:
    【解决方案2】:

    我还必须为 32 位安装 CR 运行时引擎。现在它的工作顺利:-)!

    非常感谢:)!

    【讨论】:

    • 能否详细说明你做了什么,我真的被困在这里了。提前致谢。
    猜你喜欢
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2013-03-18
    • 2014-07-28
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多