ms-access - 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 的内容。
希望有人可以提供帮助。谢谢...
解决方案
好的,通过 TallTed 的洞察力解决了这个问题。
我没有安装我已经安装了 64 位版本的 MySQL ODBC 连接器,而是下载并安装了 32 位 .Net 连接器。然后,我使用 32 位 ODBC 管理员创建了一个与 64 位 DSN 同名的新 32 位 DSN。它似乎允许这样做。创建 DSN 后,.Net 版本无需更改即可再次运行。
Access 应用程序也可以使用 64 位 DSN。
非常感谢你的帮忙...
推荐阅读
- android - Android相机捕获会话错误的纵横比
- php - 如何在 PHP 中等待信号量或锁定文件时实现超时?
- r - 将数据帧从 R Studio Cloud 传输到 GoogleSheets 似乎非常慢
- c# - 处理在同一端点上侦听的多个 UDP 套接字
- typescript - 无法使用多个文件部署 Google Cloud Functions
- python-3.x - 如果它们是另一个网络的子网,如何从列表中删除网络地址
- regex - 尽管在正则表达式测试器中匹配,为什么 bash 中的这个正则表达式与该行不匹配?
- r - 如何在 R 中重新排序 geom_point ggplot2 图?
- c# - C#string.Equals如何设置默认的StringComparison?
- python - Matplot 直方图导致很多行