簡體   English   中英

如何關閉與 firebird 數據庫的連接

[英]How to close a connection with a firebird database

我正在使用 asp.net c# webforms framework 4.5 開發一個項目,並且我對 Firebird 數據庫進行了連接測試,但是當我關閉此連接時它並沒有關閉,我使用以下代碼來完成它:

string conDDNS;
FbConnection conexaoDDNS;

protected void Abrir_Fechar_Click(object sender, EventArgs e)
{
    try
    {
        this.conDDNS = "DRIVER=InterBase/Firebird(r) driver;User=SYSDBA;Password=masterkey;Database=localhost:C:/AdCom/ADCOM.FDB";

        this.conexaoDDNS = new FbConnection(conDDNS);
        this.conexaoDDNS.Open();
        ListItem item = new ListItem("Conexão aberta");
        ListBox1.Items.Add(item);

        this.conexaoDDNS.Dispose();
        this.conexaoDDNS.Close();
        ListItem item2 = new ListItem("Conexão fechada");
        ListBox1.Items.Add(item2);

    }
    catch (Exception erro)
    {
        ListItem item = new ListItem(erro.ToString());
        ListBox1.Items.Add(item);
    }

}

我已經使用了.Close().Dispose()命令,但它沒有用。

當我做這個調試時,我意識到當它通過.Open()命令時,它會打開連接,沒關系。 但是當它通過.Close()命令時,連接仍然在數據庫上打開。

要知道在數據庫上打開的連接數,我使用以下命令:

select * FROM MON$ATTACHMENTS

Firebird .NET 提供程序有一個內置的連接池,默認情況下它是啟用的。 您可以將Pooling=false添加到連接字符串以禁用它。 然而,在很多情況下,連接池是一件好事(它可以節省必須打開連接的時間),因此請確保您確實需要禁用它。

調用FbConnection.ClearPool(connection)FbConnection.ClearAllPools()應該關閉池中當前打開的連接。

還要確保在查詢MON$ATTACHMENTS時開始一個新事務。 監控表的內容在單個事務中“凍結”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM