我的.Net SqlConnection对象是否自行关闭

| 我们有一个简单的循环过程,可以对某些数据行进行处理。 提交更改时,新行和SqlConnection对象将传递给处理行更改或添加的方法。 该过程运行10次中的5次正常。 SqlConnection在循环开始时打开,在循环结束后关闭,但是有时确实在循环中关闭。该代码在循环过程中的任何时候都没有调用close()。 所以我的问题是,为什么它可能自己关闭。 干杯 供参考,代码类似于以下内容
connection.Open();

foreach(DataRow row in rows)
{
  if(rubbish)
{
   //make some changes and save
   DatabaseConnector.Save(sqlStringToExecute, connection);
}
}

connection.Close();
    
已邀请:
连接不会自行关闭,不会。连接关闭的主要时间是: 处置(例如通过“ 1”声明) 显式调用
Close()
CommandBehaviour.CloseConnection
行为执行命令 垃圾收集-种类(尽管确实有些不同) 服务器不再可用 如果您实际上遇到异常(可能是超时或死锁),通过
using
块反弹(放置它),并且可能吞下了异常,则第一个可能性很高。 第三个是很有意思的代码。 为了进行调查,您可以订阅
StateChange
事件,并在处理程序中添加一个断点。然后向后浏览堆栈跟踪,您将确切地知道是谁在关闭它,以及为什么。如果您使用的连接超出了本代码的范围,请记住也要取消订阅。     

要回复问题请先登录注册