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

解决方案 »

  1.   

    连接存在,只要没有Open就行了
      

  2.   

    connection.Dispose();看看,应该就会释放了
      

  3.   

    关闭语句写作finally中比较好吧。不管之前的数据库操作是否成功,都关闭数据库的连接。
      

  4.   

    调用close和dispose含义是相同的,连接应该是关闭了的,除非中间出现异常了。你可以用Windows自带的Performance Monitor来看看连接的使用情况,这个可能跟Oracle里边session的概念不一样。
    此外,你可以看看以下两篇文章:
    http://support.microsoft.com/kb/830173
    http://support.microsoft.com/kb/929449
      

  5.   

    用一个异常检查下,看看会有什么样的效果。
    异常之前用
    if()
    ……
    try……
    ……
    catch……
    这样就比较容易的检查出问题的所在了!
      

  6.   

    connection是有的,关后就会放在应用程序池里了,只要不是Open就可以