在关闭连接之前关闭阅读器

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

【讨论】:

以上是关于在关闭连接之前关闭阅读器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中同时连接 2 个 RFID 阅读器? [关闭]

甲骨文数据阅读器。错误:无效操作。连接已关闭

检测阅读器何时关闭命名管道(FIFO)

当阅读器关闭时,C# 尝试调用 Read 无效

是否需要手动关闭和处置 SqlDataReader?

TCP连接的关闭