[英]Does my .Net SqlConnection object close on its own
我們有一個簡單的循環過程,可以在一些數據行上做一些事情。
提交更改時,新行和 SqlConnection object 被傳遞給處理行更改或添加的方法。
該過程在 10 次中運行 5 次,一切正常。 SqlConnection 在循環開始時打開並在循環后關閉,但有時它確實在循環期間關閉。 代碼在循環期間的任何時候都不會調用 close() 。
所以我的問題是為什么它可能會自行關閉。
干杯
作為參考,代碼類似於以下內容
connection.Open();
foreach(DataRow row in rows)
{
if(rubbish)
{
//make some changes and save
DatabaseConnector.Save(sqlStringToExecute, connection);
}
}
connection.Close();
連接不會自行關閉,不會。 連接關閉的主要時間是:
using
語句)Close()
CommandBehaviour.CloseConnection
行為執行命令如果您實際上遇到異常(可能是超時或死鎖),在using
塊中彈跳(處理它),並且可能吞下異常,則第一種是很有可能的。
第三種在善意的代碼中是非常可能的。
要進行調查,您可以訂閱StateChange
事件並在處理程序中添加斷點; 然后通過堆棧跟蹤向后走,您將確切知道是誰在關閉它,以及為什么要關閉它。 如果您使用超出此代碼的 scope 的連接,請記得取消訂閱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.