我有一个返回SqlDataReader的方法(“GetDataReader”,让我们来调用它)。它位于一个Singleton DataFactory类中,该类维护与数据库的持久连接。如何从SqlConnection对象中“分离”SqlDataReader?
问题是,返回后,DataReader仍然“连接”到我的DataFactory中的Connection对象。所以,我必须确保调用GetDataReader然后调用Close()上回来DataReader的代码,否则,“锁定”的衔接这样的:
已经有与此相关联的打开的DataReader必须先关闭的命令。
如何在将数据读取器从GetDataReader发回之前“分离”DataReader?要么,要么克隆它并发回克隆?我不想让调用代码总是明确地关闭它。
这里必须有一个最佳实践。
更新:
谢谢大家对您的输入。底线是我需要失去使用DataReader并切换到DataTable的习惯。他们更易于管理。
此外,感谢关于连接池的说明。我知道这件事,但只是没有把两个和两个放在一起,并意识到我正在重新发明轮子。
我已经得到了* *停止使用的DataReader ... – Deane 2010-01-18 16:01:56