3

我习惯使用 C#Npgsql来处理。PostgreSQL为了连接到我写的数据库:

NpgsqlConnection conn = new NpgsqlConnection(connstring);
conn.Open();

Open() 是一种void方法。它不返回任何指示它是否连接到数据库的值。我需要显示状态connectednot connected在我的客户端应用程序中。怎么做?

4

2 回答 2

7

您可以检查State财产的价值:

NpgsqlConnection conn = new NpgsqlConnection(connString); 
conn.Open(); 
if (conn.State == System.Data.ConnectionState.Open) 
       Console.WriteLine("Success open postgreSQL connection."); 
conn.Close(); 

StateChange此提供程序的 2.0 以上版本也提供事件。

于 2012-11-24T18:51:04.947 回答
0

迭代 kmatyaszek 的答案和 Damyan Bogoev 的评论,这就是我所做的:

public async Task<bool> TestConnection()
    {
        await using (NpgsqlConnection conn = new NpgsqlConnection(ConnectionString))
        {
            await conn.OpenAsync();
            if (conn.State == System.Data.ConnectionState.Open)
                return true;
            else return false;
        }
    }
于 2021-04-14T13:47:43.060 回答