连接到PostgreSQL

时间:2012-11-24 18:36:53

标签: c# database postgresql npgsql

我使用Npgsql使用C#处理PostgreSQL。为了连接数据库我写道:

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

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

2 个答案:

答案 0 :(得分:5)

您可以查看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的版本。

答案 1 :(得分: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;
        }
    }