在关闭连接之前关闭阅读器
Posted
技术标签:
【中文标题】在关闭连接之前关闭阅读器【英文标题】:Close reader before closing connection 【发布时间】:2010-03-25 21:07:11 【问题描述】:你应该总是在关闭连接之前关闭 DataReader,还是只关闭连接就可以了?仅仅关闭连接是否会有效地关闭阅读器?
(这是针对 c#.net 3.5)
谢谢!
【问题讨论】:
【参考方案1】:除了明确您的意图之外,还有来自 Microsoft 文档 (Retrieving Data Using a DataReader (ADO.NET)) 的内容:
您应该始终在使用完毕后调用 Close 方法 DataReader 对象。
【讨论】:
根据我的经验,如果您关闭连接,而不是 DataReader,您可能会收到错误 从池中获取连接之前已过超时时间。【参考方案2】:同时关闭 DataReader。
我。如果它实现了 IDisposable ,或者有一个 .close() 方法或类似的构造,文档说明你在使用完这个实例后应该调用它 - 执行它。 不要依赖其他东西来为您处理它 - 除非文档明确说明它确实如此。对于 DataReader/DbConnection - 文档没有提到这样的事情。
【讨论】:
【参考方案3】:我更喜欢使用 c# using statment,它会为您调用 dispose()。这是一个不错的解释。
Using Statment
【讨论】:
以上是关于在关闭连接之前关闭阅读器的主要内容,如果未能解决你的问题,请参考以下文章