微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VS 2015 错误:指定的 DSN 包含驱动程序和应用程序之间的架构不匹配

如何解决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 的洞察力解决了这个问题。

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

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

非常感谢您的帮助...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?