晕,using()会自动帮你释放资源的。它会自动帮你关掉连接的。
如果你其它应用需要用到连接你就要再次打开连接。我厚颜无耻的接分了。

解决方案 »

  1.   

    个人觉得问题的关键不在这里,应该在static上面。
      

  2.   

    using(OracleConnection con=PubConn.PubConnection) 语句,定义一个范围,在范围结束时处理对象。当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。现在问题我想LZ就应该很清楚了.PubConn.PubConnection返回一个静态的SqlConnection对象,静态对象在整个程序运行周期内都会存在,不会消亡,而正好与LZ的这种using用法相冲突.他在范围结束时是无法释放其对象资源的.
      

  3.   

    当然解决方案,就是两种,一种就是不用using,一种就是把静态对象换为实例对象
      

  4.   

    恩,想法就是这样的,楼上的正解。我也是这样想的,不过不知道对不对,从PHP转过来不久,面象对象机制不是很熟悉。
      

  5.   

    个人觉得把static干掉要好一点。更符合.NET的编程思想。
      

  6.   


    ≮西门潇洒≯:::::::
    按照你说的,不用using(),其他的不变,还能实现我所希望的吗?就是希望整个系统只创建一个连接对象,
    其他需要连接数据库的地方,就只引用这一个公共的连接对象,可以实现吗???????
      

  7.   

    .............你真行................又静态又用USING释放.............先把using去掉再说吧,using不是随随便便乱用的。
      

  8.   

     private static OracleConnection DALPubConnection;
     用静态变量时对所有用户有效。也就是说当你连接是关闭时。另一个用户进来。这个状态还是关闭的。
      

  9.   

    按照你说的,不用using(),其他的不变,还能实现我所希望的吗?就是希望整个系统只创建一个连接对象, 
    其他需要连接数据库的地方,就只引用这一个公共的连接对象,可以实现吗???????
    ----------------------
    理论上就是这样
      

  10.   

    那你就不要用using完全释放啊..........连渣都没了
      

  11.   

    释放掉了,下次调用要重新new