没有数据库的PostgreSQL连接字符串-使用NPgSQL时出错

没有数据库的PostgreSQL连接字符串-使用NPgSQL时出错,postgresql,npgsql,Postgresql,Npgsql,当我使用Npgsql(.net)从连接字符串中省略数据库时,连接到PgSQL时出错 错误:{“3D000:数据库\“j.smith\”不存在“} 连接字符串失败:服务器={0};端口={1};用户Id={2};密码={3} 工作连接字符串:服务器={0};端口={1};使用者 Id={2};密码={3};数据库=postgres 我知道如果没有Database参数,Pg将默认为Database=User,但我不想指定数据库。有没有办法做到这一点 否则,“postgres”数据库是否存在于每个

当我使用Npgsql(.net)从连接字符串中省略数据库时,连接到PgSQL时出错

  • 错误:{“3D000:数据库\“j.smith\”不存在“}
  • 连接字符串失败:服务器={0};端口={1};用户Id={2};密码={3}
  • 工作连接字符串:服务器={0};端口={1};使用者 Id={2};密码={3};数据库=postgres
我知道如果没有Database参数,Pg将默认为Database=User,但我不想指定数据库。有没有办法做到这一点

否则,“postgres”数据库是否存在于每个PgSQL安装中,并且任何可以登录的用户是否可以始终连接到它

看起来Npgsql有一个与此相关的bug,但在3.0.1中已修复。我用的是3.1.8。

谢谢。
Ark

您是否创建了
“j.smith”
db?j.smith是用户。如果您不包括数据库,则将尝试连接到
用户名\u db
,因此要么已经提供一个通用数据库,要么创建一个具有用户名的数据库。您不清楚要查找的是什么。。。您已经知道,当您省略数据库时,将使用用户名(这是PostgreSQL工具的标准),您还希望Npgsql做什么?基本上,我希望连接到数据库以验证凭据,然后从系统目录中查询数据库列表。我的应用程序有一个“测试连接”按钮,可以通过该按钮执行此操作。如果我希望“postgres”数据库始终存在,那么我很乐意将其添加到连接字符串中。是这样吗?