Esa*_*ily 5 .net c# database postgresql npgsql
我试图PostgreSQL从我的c#应用程序连接到数据库,如下所示:
NpgsqlConnection MyConnection = new
NpgsqlConnection("Server=localhost;Port=5432;User Id=postgres;Password=mypassword;Database=mydatabase;");
try
{
MyConnection.Open();
}
catch (NpgsqlException pe)
{
//Code "28P01" = user name or password is wrong
// server ip or port is wrong
}
Run Code Online (Sandbox Code Playgroud)
问题是:NpgsqlException.code不区分以下条件:
在这两种情况下都返回代码"28P01".显然Npgsql可以看到服务器在那里并且响应了一些数据,表明用户名或密码错误(上面的条件#2)或似乎没有人(上面的条件#1)
如何区分我的代码中的这2个案例?
对于 Npgsql v 3.0.2.0(不确定旧版本),如果 IP/主机名错误,则会抛出代码 =-2146233083 的异常。但是,如果 IP/主机名正确但端口号错误,则会抛出代码 = -2147467259 的异常。如果 IP/端口正确,但用户名/密码错误,则会抛出代码 =“28P01”的 NpgsqlException。
| 归档时间: |
|
| 查看次数: |
1084 次 |
| 最近记录: |