如果没有调用SqlConnection.Close()或SqlConnection.Dispose(),它会是什么?

时间:2016-07-27 07:10:21

标签: c# asp.net .net sql-server

我刚发现我公司的一个ASP.NET网络应用程序将连接到SQL Server 2008 R2数据库以读取/写入数据,但在代码的某些部分,SqlConnection.Close()和{{}使用连接后永远不会调用1}}。

来自MSDN,SqlConnection Class

  

如果SqlConnection超出范围,则不会关闭。因此,您必须通过调用Close或Dispose来显式关闭连接。

我使用SqlConnection.Dispose()并发现当我通过Web应用程序执行某些数据库访问时,会创建越来越多的连接。但几分钟后,一些联系似乎被取消了。

是否有sp_who个运行时来处理.NetSqlConnection.Close()未被调用的情况?是否存在影响性能和稳定性的潜在问题?

1 个答案:

答案 0 :(得分:0)

它会好的,你不会在一段时间内收到任何错误。 当您的应用程序运行并且每次打开SQL连接并保持非关闭状态时,在您尝试打开新的SQL连接时,SQL连接池将在某段时间内变满并且系统会引发连接池溢出错误。

因此,请始终在函数中保持连接关闭代码。