为什么我会收到 "Data source name not found and no default driver specified" 以及如何解决?
Why am I getting "Data source name not found and no default driver specified" and how do I fix it?
当试图在 Windows 上制作一个通过 ODBC 连接到数据库的程序时,我收到以下错误:
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.
我确信我的代码是正确的。它甚至可以在不同的 PC 上运行。
为什么会出现此错误?我该如何解决?
导致此错误的原因是什么?
错误消息告诉您,简单地说,ODBC 驱动程序管理器找不到您在连接字符串或 DSN 中指定的驱动程序。
这可能有 3 个常见原因:
- 您尝试使用的驱动程序未安装在您的系统上
- 驱动程序已安装,但是它与您正在 运行ning
的代码的位数不匹配
- 您在键入驱动程序名称时出错
如何检查我的系统上安装了哪些驱动程序?
您可以转到 ODBC 数据源管理器来检查系统上安装的驱动程序。要打开它,请按 ⊞ Win + R,然后输入:odbcad32.exe
。然后检查选项卡 Drivers 以查找已安装的驱动程序。 名称 列指示您应该在连接字符串或 DSN 中使用的确切名称。
如果您使用的是 64 位 Windows,那只会列出安装在
你的系统。要查看安装了哪些 32 位驱动程序,请按 ⊞ Win + R,然后输入:C:\Windows\SysWOW64\odbcad32.exe
,然后转到驱动程序 选项卡。
驱动安装好了,可能是位数不对,怎么办?
然后,您有两个选择,要么调整您的程序运行正在安装的位数,要么安装具有不同位数的驱动程序。
Windows 上默认安装的某些驱动程序只有 32 位变体。这些不能用于 64 位程序。
您通常可以在任务管理器中识别出某个程序 运行 在哪个位数下。在 Windows 10 中,所有 32 位程序的名称都附加了 (32-bit)。如果不存在,您可能 运行 正在使用 64 位程序,大多数现代编程语言和环境 运行 默认情况下都在 64 位上,但允许您切换到 32-少量。但是,不同编程语言的细节不在这个问题的范围内。
如何确认我没有输入错误的驱动程序名称?
ODBC 连接字符串如下所示:
DRIVER={DriverName};ParameterName1=ParameterValue1;ParameterNameN=ParameterValueN;
如果驱动名称部分可能包含特殊字符,则需要用大括号分隔,并且需要与安装的驱动名称完全匹配,如在ODBC数据源管理器中找到的,包括空格和印刷字符,但不包括大写。
请注意,对于已部署的代码,驱动程序 必须 出现在 computer/server 运行 代码中。
我没有驱动,或者位数不对,请问哪里找合适的?
这取决于您要使用的驱动程序。
带有下载位置的常见驱动程序列表(所有 32 位和 64 位都相同 URL):
- Microsoft ODBC Driver 17 for SQL Server
- Microsoft Access 数据库驱动程序,它是 Microsoft Access Database Engine 的一部分。请注意,不支持同时安装 32 位和 64 位 Access ODBC 驱动程序。
- Oracle MySQL ODBC connector
- Christian Werner 的开源 SQLite ODBC driver(非官方)
- psqlODBC, PostgreSQL 官方驱动
如果您要使用的驱动程序未列出,通常可以使用 Google.
轻松找到该位置
当试图在 Windows 上制作一个通过 ODBC 连接到数据库的程序时,我收到以下错误:
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.
我确信我的代码是正确的。它甚至可以在不同的 PC 上运行。
为什么会出现此错误?我该如何解决?
导致此错误的原因是什么?
错误消息告诉您,简单地说,ODBC 驱动程序管理器找不到您在连接字符串或 DSN 中指定的驱动程序。
这可能有 3 个常见原因:
- 您尝试使用的驱动程序未安装在您的系统上
- 驱动程序已安装,但是它与您正在 运行ning 的代码的位数不匹配
- 您在键入驱动程序名称时出错
如何检查我的系统上安装了哪些驱动程序?
您可以转到 ODBC 数据源管理器来检查系统上安装的驱动程序。要打开它,请按 ⊞ Win + R,然后输入:odbcad32.exe
。然后检查选项卡 Drivers 以查找已安装的驱动程序。 名称 列指示您应该在连接字符串或 DSN 中使用的确切名称。
如果您使用的是 64 位 Windows,那只会列出安装在
你的系统。要查看安装了哪些 32 位驱动程序,请按 ⊞ Win + R,然后输入:C:\Windows\SysWOW64\odbcad32.exe
,然后转到驱动程序 选项卡。
驱动安装好了,可能是位数不对,怎么办?
然后,您有两个选择,要么调整您的程序运行正在安装的位数,要么安装具有不同位数的驱动程序。
Windows 上默认安装的某些驱动程序只有 32 位变体。这些不能用于 64 位程序。
您通常可以在任务管理器中识别出某个程序 运行 在哪个位数下。在 Windows 10 中,所有 32 位程序的名称都附加了 (32-bit)。如果不存在,您可能 运行 正在使用 64 位程序,大多数现代编程语言和环境 运行 默认情况下都在 64 位上,但允许您切换到 32-少量。但是,不同编程语言的细节不在这个问题的范围内。
如何确认我没有输入错误的驱动程序名称?
ODBC 连接字符串如下所示:
DRIVER={DriverName};ParameterName1=ParameterValue1;ParameterNameN=ParameterValueN;
如果驱动名称部分可能包含特殊字符,则需要用大括号分隔,并且需要与安装的驱动名称完全匹配,如在ODBC数据源管理器中找到的,包括空格和印刷字符,但不包括大写。
请注意,对于已部署的代码,驱动程序 必须 出现在 computer/server 运行 代码中。
我没有驱动,或者位数不对,请问哪里找合适的?
这取决于您要使用的驱动程序。
带有下载位置的常见驱动程序列表(所有 32 位和 64 位都相同 URL):
- Microsoft ODBC Driver 17 for SQL Server
- Microsoft Access 数据库驱动程序,它是 Microsoft Access Database Engine 的一部分。请注意,不支持同时安装 32 位和 64 位 Access ODBC 驱动程序。
- Oracle MySQL ODBC connector
- Christian Werner 的开源 SQLite ODBC driver(非官方)
- psqlODBC, PostgreSQL 官方驱动
如果您要使用的驱动程序未列出,通常可以使用 Google.
轻松找到该位置