高手们帮忙!关于DataReader未关闭的问题。 我的网站,只要访问量稍微大一点,就总出现DataReader未关闭的错误,不回收进程的话,过个几分钟,它自己有会好。请问是啥问题呢,我仔细检查了N遍代码,所有的DataReader都有Close(),数据库连接数也是设的最大,不知道为什么原因。请回答一些针对问题实际点的解决方案。不要说一些让我换成DataSet之类的无用回答,我只想知道当前情况下该怎么解决掉。谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 每次用完后,不仅DataReader要Close,Connection也要Close。另外同一个Connection下,当DataReader处于打开状态时,不能再执行其他SQL操作数据库,因为当前连接已被占用。 ExecuteReader(CommandBehavior.CloseConnection);CommandBehavior.CloseConnection 枚举会在关闭DataReader时,也会自动关闭Connection 本帖最后由 net_lover 于 2012-05-18 08:54:38 编辑 咦··还真是··我的DBHelper是静态方法为主老孟啊··这种DBHelper经常调用的类,写成非静态的比较好咯? 没有一条有价值的回答吗?手动Close、using、CommandBehavior.CloseConnection 3个都用上了,Connection是更不用说了,当然是关闭了,不关闭就不会自动恢复了,现在是提示一下错误,一会又会自动恢复,整个项目没有static方法。这些问题我都没解决的话,也不会来这求助了。 估计你的关闭是直接关闭的关闭方式 try { //查询数据 } catch { throw; } finally { //请在这里关闭连接 //请这里关闭Reader } 静态方法没有问题但是静态成员就会有并发问题比如SqlConnection、SqlCommand之类的,避免写成static,除非你能保证它们永远不会线程冲突另外,如7楼所说,如果出现异常,你的Close指令可能执行不到,所以要try,在finally里关闭Reader和连接 用using等效于try finally去关闭 彷中华英才网页面点击地区弹出选择页面反回选择值如何实现 速求(菜鸟问题):如何判断输入的字符串是什么类型 问个服务器安全的问题 winform中,点击子窗口中的按钮给父窗口中的控件付值效果怎么做呀 如何让listview编辑时可以指定某一列可以编辑 mvc3.0 只能用于VS 2010 ? GridView由“普通查看模式”变为“编辑模式”是怎么实现的? ASP.Net中的几个简单的问题,希望您可以赐教! 急急急!!OCX的安装与分发 谁有Microsoft SQL Server 2000 Reporting Services,给我传一个 接收文件保存,不弹出保存文件的对话框 类型不能同时存在于
CommandBehavior.CloseConnection 枚举会在关闭DataReader时,也会自动关闭Connection
老孟啊··这种DBHelper经常调用的类,写成非静态的比较好咯?
{
//查询数据
}
catch
{
throw;
}
finally
{
//请在这里关闭连接
//请这里关闭Reader
}
但是静态成员就会有并发问题
比如SqlConnection、SqlCommand之类的,避免写成static,除非你能保证它们永远不会线程冲突另外,如7楼所说,如果出现异常,你的Close指令可能执行不到,所以要try,在finally里关闭
Reader和连接