2015-10-27 38 views
0

只是一個普遍的問題,如果我在我的程序中打開一個OleDbConnection,我應該在某個時候關閉它嗎?我只問,因爲我看過一些教程,其中演示者不包括關閉連接的語句。關閉一個OleDbConnection

在我的具體情況下,我打開一個連接來訪問Excel文件,填充DataTable並獲取一些值。然後,雖然我沒有理由打開連接,但我認爲如果我將其打開,可能會導致一些問題。

另外,說明conn.Close();足以關閉連接?

+1

你應該總是關閉連接。如果不僅僅是爲了減少服務器的負載。如果你不再使用它,我會打電話給conn.Dispose。順便說一句,曾聽說過'使用'的聲明? –

+1

是的,'conn.Close();'就足夠了,但'using'語句更清晰,並且保​​證即使拋出異常也關閉連接。 –

+0

謝謝,我欣賞它! –

回答

4

是的,您應該儘快關閉連接。如果您在一種方法中使用連接,而不是在一次方法之後立即使用,請關閉並處理它,以便清理它。

您應該在using語句中創建連接,因爲它甚至會在發生異常時關閉並處理連接。

using (OleDbConnection conn = new OleDbConnection(...)) 
{ 
    // use the connection inside here 
} 
+1

爲什麼downvote? –

+0

如果界面要求您處置它,請始終按照我的意見去做。 –

+0

謝謝,我很欣賞答案和解釋。 –

5

您應該使用using塊,以確保連接關閉並正確放置。

using (OleDbConnection connection = new OleDbConnection(connectionString)) 
{ 
    connection.Open(); 
    //Do some work 
}//The connection is automatically closed when the code exits the using block. 

進一步閱讀here