首页 > 解决方案 > VS 2015 错误:指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配

问题描述

我有需要连接到远程 MySQL 数据库的 Access 和 Visual Studio 应用程序。我已经有一段时间不用开发 VS 应用程序了,但会不断地开发和增强 Access 版本。前段时间我的 Access 应用程序开始出现问题,Microsoft 技术人员建议我不应该在我的 64 位 PC 上使用 32 位 Office 应用程序,所以他们通过卸载 Office 应用程序并重新安装 64 位 Office 来说服我.

当然,我在将 Access 应用程序连接到 MySQL 数据库时遇到了错误,因此我下载并安装了 64 位 MySQL 连接器。32 位连接器是 5.something 版本,而我正在安装的 64 位连接器是 8.something,因此安装没有尝试删除任何内容。一旦我重命名了旧的 DSN 并设置了一个新的 DSN(使用 64 位版本的 ODBC 数据源),一切都会再次运行。

现在我正在尝试使用 VS 应用程序,它不会运行,给我上面的错误。研究表明 VS 到 2017 年的版本是 32 位的,所以我认为错误是因为 32 位应用程序正在尝试使用 64 位版本的 DSN。

所以现在我有两个挑战:

1:安装 MySQL 连接器会导致之前的版本被删除(因为现在我正在安装的现有 64 位版本和新的 32 位版本都是 8.something)。如何让 32 位和 64 位版本的连接器在我的 PC 上共存?如果我可以同时安装两者,我可以保留名为“MySql”的 64 位 DSN,并添加一个名为“MySql32”的新 32 位 DSN。

2:如果我可以安装两个连接器并创建不同的 DSN,如何更改我的 VS 以使用正确的?这是我的 App.Config 文件的片段,我认为这是有问题的区域:

<system.data>
  <DbProviderFactories>
    <remove invariant="MySql.Data.MySqlClient"/>
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" 
         type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
  </DbProviderFactories>
</system.data>

但我在那里看不到任何涉及特定 DSN 的内容。

希望有人可以提供帮助。谢谢...

标签: ms-accessvisual-studio-2015odbc

解决方案


好的,通过 TallTed 的洞察力解决了这个问题。

我没有安装我已经安装了 64 位版本的 MySQL ODBC 连接器,而是下载并安装了 32 位 .Net 连接器。然后,我使用 32 位 ODBC 管理员创建了一个与 64 位 DSN 同名的新 32 位 DSN。它似乎允许这样做。创建 DSN 后,.Net 版本无需更改即可再次运行。

Access 应用程序也可以使用 64 位 DSN。

非常感谢你的帮忙...


推荐阅读