SqlConnection就一定要关闭吗?
1个回答
展开全部
按照ms的说法,数据库连接属于非托管资源,在.net下使用后一定要close,这样才能避免资源泄露。其实我并不这么认为
具体的实践如下:
1、建立一个从ServicedComponent继承的类
2、声明使用对象池
3、在该类的构造函数中打开对数据库的连接,并声明不使用ado.net提供的连接池。应该在该函数中尽量把所有初始化工作做完,这样可以更好地利用对象池
4、如果该类的方法不会被client频繁调用,那么应该声明JITA
5、写数据库访问相关方法,对数据库操作后,不关闭SqlConnection
6、重写CanBePooled方法,如果SqlConnection是open的状态,那么就声明可以被pooled
7、写client调用方法,对刚才写好的类的数据库访问方法进行调用,调用后一定要dispose该类,以便通知对象池回收
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询