【发布时间】:2020-07-06 06:47:49
【问题描述】:
我知道这个问题已经被问过很多次了,但我的变化略有不同,在花了几个小时试图让一行代码正常工作后,我不得不把头发拉出来。我有一个 MySQL 数据库,正在尝试使用 ODBC 进行连接。我使用的是 Windows 10 版本 1909。
Line 13: OpenString ="DRIVER={MySQL ODBC 8.0 ANSI Driver};SERVER=localhost;DATABASE=collections;UID=edited_out;PWD=edited_out;"
Line 14: Conn = Server.Createobject("ADODB.Connection")
Line 15: Conn.open = OpenString
引用的代码在我使用 Microsoft .NET Framework 版本:4.0.30319 的主 PC 上运行良好; ASP.NET 版本:4.8.4075.0 和 DRIVER={MySQL ODBC 5.3 ANSI 驱动程序}。在具有几乎相同配置的测试 PC 上,除了驱动程序名称外,完全相同的代码会失败。 (Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.8.4075.0 和 DRIVER={MySQL ODBC 8.0 ANSI Driver} 或就此而言,DRIVER={MySQL ODBC 8.0 Unicode Driver} - 两者都已安装。)请见附图作为证据。我得到了众所周知且令人沮丧的“未找到数据源名称且未指定默认驱动程序”。 Code snippet and drivers
我意识到这个错误几乎总是由于驱动程序名称错误。但是,我检查并重新检查了我的语法和驱动程序安装。我知道我的 ODBC 安装没有明显的问题,因为我安装 LibreOffice 纯粹是为了测试,并且能够使用此处显示的相同驱动程序在同一台 PC 上通过 ODBC 在几秒钟内连接到同一数据库。 ODBC 8.0 版驱动程序有什么不同或特别麻烦吗?我是否需要尝试将此版本降级到 5.3?
感谢您的帮助。
【问题讨论】:
-
为什么要使用 ODBC?有一个MySQL client for .NET 可用。
-
谢谢梅森。如果我找不到解决此问题的方法,我想我会尝试一下,但我已经编写了很多代码,并且更愿意转移它而不是重新开始。
-
它不会是“重新开始”。它仍然是 ADO.NET。在大多数情况下,它就像更新新的命名空间并从 OdbcConnection 切换到 MySqlConnection 或任何名称一样简单。您可能需要不到一分钟的时间来验证它是否有效,然后再花 10 分钟来更新您的项目。
-
再次感谢。会看看。我一直在手工编写单个页面而不是使用 Visual Studio,现在可能是我学会使用它的时候了。
-
所以您是说包含
OpenString ="DRIVER={MySQL ODBC 8.0 ANSI Driver}的代码在安装了驱动程序 5.3 的 PC 上可以正常工作,但在安装了驱动程序 8.0 的 PC 上不能正常工作?