C# 如何释放连接池的连接

我们知道.net的数据库连接默认是使用连接池的,这样做有很多好处。但是对于CS结构的应用程序,会消耗很多数据库连接。因此我在oracle数据库端设置了,IDL TIME 空闲时间,即超过一定时间没有操作就关闭连接,但是.net客户端却不能释放连接,所以当Oracle端释放连接后,客户端再执行sql就会报异常。如何做才能释放连接池中的连接呢?

只能说你的oracle的数据库的驱动有问题,或者有别的问题。.net的连接池当然也是自动管理,不需要释放的。只要调用connection.close()或者dispose()就可以了。

谢谢你的回答。但是问题就出现在这个自动管理上,当我们调用connection 的Close时,连接并没有真正的释放,而是由.net回收到了回收池。当再new一个connection时,只是取出原来的连接,但是当oracle主动关闭连接,或者网络中断,连接池中连接并不能主动释放,而是抛出异常。我想做的是,当连接池中的连接空闲一定时间后,主动释放,我不了解.net连接池的释放机制,当然我还了解到Connection有一个静态方法ClearAllPools可以清理连接池,不过这样要做大量的工作。