关闭数据库连接的一些疑惑

编程入门 行业动态 更新时间:2024-10-26 19:40:26
关闭数据库连接的一些疑惑 我有一个C#写的Web程序,刚开始运行的时候速度还不错 但是运行久了就会变得很卡,打开资源管理器发现SQL Server和ASP.NET占了很大的资源 是不是我连接数据库的操作没有释放资源引起的 但我绝大多数都有close数据连接的操作 请问高手,这是怎么引起的呢?跟关闭数据库连接有关吗?

最满意答案

你说的那个可能性很大。 我怀疑是你读取出来的SqlDataReader对象没有关掉。 或许你关掉了,但没有和数据库的连接相关联。 这个的意思就是,如果关联了,你关闭SqlDataReader对象,自然数据库的连接也会随着关闭。 如果没有关联,那就说不准了。 对于DataSet和Datatable这些数据源的填充,如果你在执行数据库操作的代码中确定已经关闭了数据库连接,那就没什么问题了。因为这些数据是断开式的连接,也就是把数据从数据库中读取出来后,就可以立即关闭数据库联接的,这个和上面的数据集不一样。 因此你好好检察下DataReaer这类的数据集是否关联了关闭数据库连接。 对于断开式的数据集,你就看下在执行数据库的时候是否关闭了数据库连接! 参考代码: protected void RunProc(string procName, out SqlDataReader dr) { ///创建SqlCommand对象 ///CreateSqlCommand是我自己写的方法,并非系统提供 SqlCommand cmd = CreateSqlCommand(procName, null); if (cmd == null) { dr = null; return; } try { ///读取数据 ///这里是关键是CommandBehavior枚举,重点了解这个 ///CommandBehavior.CloseConnection这个枚举值也是系统默认的 dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); } catch (Exception ex) { dr = null; throw new Exception(ex.Message, ex); } } 如果还有什么不清楚的,希望继续交流!!

更多推荐

本文发布于:2023-04-27 12:39:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1326135.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据库连接   疑惑

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!