using (DbConnection conn = new DbConnection())
{
// do stuff with database
}
請問using
塊的調用conn.Close()
?使用塊會關閉數據庫連接嗎?
using (DbConnection conn = new DbConnection())
{
// do stuff with database
}
請問using
塊的調用conn.Close()
?使用塊會關閉數據庫連接嗎?
是的,它會; DbConnection.Dispose()
的實現調用Close()
(以及派生實現)。
肯定是的,因爲它會配置連接並在配置連接的內部邏輯之前調用close。
是 - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.close.aspx
編輯:從微軟:「連接會自動在using塊結束時關閉。」
雖然鏈接可能會解決問題,但也可能包含更多信息。這裏的小故事是幫助讀者專注於重點的一件好事。 – Trilarion 2014-07-11 12:38:33
使用塊將通過調用Dispose()方法確保DbConnection對象的銷燬。 Dispose()方法將依次調用Close()方法,並且必須等待它完成關閉與數據庫的連接。
它不取決於派生類是否重寫Dispose(bool)方法?如果派生類沒有覆蓋它並調用'Close()',那麼連接將不會在使用塊結束時關閉(當調用Dispose時) – alwayslearning 2011-09-01 13:31:19
很確定AL的註釋是準確的,因爲DBConnection實際上並沒有重寫Dispose由System.ComponentModel.Component提供。在實踐中,雖然我懷疑有沒有任何DBConnection實現不會覆蓋Dispose並關閉任何連接作爲一個連接類,在它本身之後不會清理的連接類將是一個很差的實現。 – 2015-02-27 11:51:22