簡體   English   中英

sql連接池

[英]sql connection pool

我在短時間內連續對數據庫進行多個查詢。 過去,我總是關閉連接並在需要再次與sqlserver通訊時重新打開-這對我很有幫助。 但是現在,當我嘗試在很短的時間內執行此操作時,沒有任何可用的連接消息。 然后,我以為我會嘗試在應用程序的整個生命周期中保持連接打開狀態,到目前為止,我還沒有遇到任何問題。 我只是想知道其他人對這種方法的看法...我在走向災難的短途中嗎?

我想到的另一件事是,我真的不必調用connection open()方法,該連接似乎在沒有調用的情況下也可以工作-怎么辦?

void main()
{
SqlConnection cn = new SqlConnection();
cn.ConnectionString = <connection>;
tmr.interval=100;
tmr.Elapsed += new System.Timers.ElapsedEventHandler(tmr_Elapsed);
}

void tmr_elapsed()
{
tmr.Enabled = false;
SqlDataAdapter da = new SqlDataAdapter(query, cn);
da.Fill(dt);
tmr.Enabled = true;
}

C#,SQL Server 2000,.NET 2.0

您確實不應該保持此連接打開然后再使用。 當然,您的計時器非常快(每100毫秒),但是與此同時,您可以保持很長一段時間保持連接狀態。

而是,應該在計時器的事件處理程序中打開連接並正確處理它。 如果對連接使用using語句,則應該沒問題,不必擔心資源耗盡。

至於不必打開連接,則SqlDataAdapter會為您完成連接,並根據需要打開和關閉連接。 它將在工作完成后將其保持在您傳入狀態時的狀態(如果處於打開狀態,則將其保持打開狀態;如果處於關閉狀態,則將其保持打開狀態,然后關閉它)。

暫無
暫無

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

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