VB.NET使用PostgreSQL ODBC连接提示找不到数据源且未指定默认驱动
报错根因
- 连接字符串内填写的PostgreSQL ODBC驱动名称与系统实际安装的驱动全称不匹配,是触发IM002错误的核心原因
- 项目运行架构与ODBC驱动架构不匹配:你创建的是64位ODBC连接,若项目默认配置优先运行32位进程,会无法读取64位ODBC的驱动与数据源配置
解决步骤
确认系统中PostgreSQL ODBC驱动的准确全称
打开64位ODBC数据源管理器(路径:C:\Windows\System32\odbcad32.exe),切换到「驱动程序」标签,找到PostgreSQL对应的驱动完整名称,常见名称为PostgreSQL ODBC Driver(UNICODE)或PostgreSQL ODBC Driver(ANSI)。修正连接字符串的驱动配置
将原连接串中Driver={PostgreSQL}替换为上一步查到的完整驱动名,修正后的示例连接串如下:
connectionString = "Driver={PostgreSQL ODBC Driver(UNICODE)}; Server=localhost; Port=5432; Database=dvdrental2; Uid=postgres; Pwd=xxxxxx"
- 对齐项目运行架构
右键VS项目 → 选择「属性」→ 进入「编译」标签页:
- 直接将「目标CPU」设置为
x64,确保程序以64位进程运行 - 若需保留
Any CPU配置,需取消勾选「首选32位」选项,避免程序以32位模式启动。
快速验证方案
如果你已经在64位ODBC管理器中创建了命名DSN(假设DSN名称为pg_test),可直接使用DSN连接串降低配置出错概率:
connectionString = "DSN=pg_test;Uid=postgres;Pwd=xxxxxx"
内容的提问来源于stack exchange,提问作者user9491577
相关产品推荐
相关产品推荐

