【问题标题】:Connecting to PostgreSQL连接到 PostgreSQL
【发布时间】:2012-11-24 18:36:52
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# database postgresql npgsql


    【解决方案1】:

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

    【讨论】:

    • 在 using 块中使用 NpgsqlConnection 实例更安全。因此,即使出现错误行为,您也将始终关闭连接并释放其相关资源。
    【解决方案2】:

    迭代 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;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2017-12-05
      • 2019-07-14
      • 2020-01-10
      • 2012-11-01
      • 2019-11-02
      • 2013-10-26
      • 2021-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多