请查看代码。我们有一个像这样的方法返回读者。即
public IRecordsReader GetValues()
{
IRecordsReader TestReader.....
return TestReader;
}
我们在另一个方法中调用该方法
IRecordsReader ResultReader = GetValues();
ResultReader.Close();
ResultReader.Dispose();
即我们正在关闭并处置该读者。
我怀疑是我们没有在GetValues()
方法中正确关闭TestReader。那么它是否会导致任何连接池问题?请提出你的建议。
答案 0 :(得分:1)
您可能应该使用SqlDataReader包装它,以便它自动关闭并处置IDisposable
对象。
using(IRecordsReader ResultReader = GetValues())
{
//do your stuff
}
//resultReader is closed and disposed from now
因为你这样做
public IRecordsReader GetValues()
{
IRecordsReader TestReader.....
return TestReader;
}
和这个
IRecordsReader ResultReader = GetValues()
这就是你实际做的事情
IRecordsReader ResultReader = TestReader
所以你间接关闭/处置TestReader
实例。你懂了?。把它放在代码中,尝试你会知道:)
So whether it will cause any connection pool issues? Please give your suggestions.
除非未超出您的连接限制,否则您不会遇到问题。但是,由于您正在关闭并处置资源,因此您不会遇到任何问题:)