日期:2014-05-18  浏览次数:20402 次

数据库连接未关闭
我用以下代码访问了一下数据库,连接应该已经关闭,为什么查看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就可以