当前位置: 代码迷 >> ASP.NET >> 数据库连接未关闭,该如何处理
  详细解决方案

数据库连接未关闭,该如何处理

热度:2120   发布时间:2013-02-25 00:00:00.0
数据库连接未关闭
我用以下代码访问了一下数据库,连接应该已经关闭,为什么查看V$Session中,连接还存在啊。
  OracleConnection connection = new OracleConnection(connString);
  OracleCommand command = new OracleCommand(Query, connection);
  OracleDataAdapter adapter = new OracleDataAdapter(command); 
  connection.Open(); 
  System.Data.DataSet myDataSet = new System.Data.DataSet(); 
  adapter.Fill(myDataSet,"Results");
  connection.Close(); 


------解决方案--------------------------------------------------------
连接存在,只要没有Open就行了
------解决方案--------------------------------------------------------
connection.Dispose();看看,应该就会释放了
------解决方案--------------------------------------------------------
如果过程没有执行完的话,虽然连接已经关闭,但是连接是存在的,因为连接占用的资源没有被释放,你不必担心,如果不再使用,关闭后释放一下应该就行了。
------解决方案--------------------------------------------------------
mark
------解决方案--------------------------------------------------------
关闭语句写作finally中比较好吧。不管之前的数据库操作是否成功,都关闭数据库的连接。
------解决方案--------------------------------------------------------
调用close和dispose含义是相同的,连接应该是关闭了的,除非中间出现异常了。你可以用Windows自带的Performance Monitor来看看连接的使用情况,这个可能跟Oracle里边session的概念不一样。
此外,你可以看看以下两篇文章:
http://support.microsoft.com/kb/830173
http://support.microsoft.com/kb/929449
------解决方案--------------------------------------------------------
用一个异常检查下,看看会有什么样的效果。
异常之前用
if()
……
try……
……
catch……
这样就比较容易的检查出问题的所在了!
------解决方案--------------------------------------------------------
没关系的吧
------解决方案--------------------------------------------------------
up
------解决方案--------------------------------------------------------
有可能跟缓存有关
------解决方案--------------------------------------------------------
connection是有的,关后就会放在应用程序池里了,只要不是Open就可以
  相关解决方案