gpt4 book ai didi

C# 读者处理审查

转载 作者:行者123 更新时间:2023-11-30 21:15:12 24 4
gpt4 key购买 nike

我正在使用 Enterprise Library 查询我的数据库。当我运行查询时,我依赖于存储过程。目前,我使用的代码如下所示:

Database database = DatabaseFactory.CreateDatabase();
DbCommand command = database.GetStoredProcCommand("MyStoredProcedureName");

database.AddInParameter(command, "filter", DbType.String, filter);

Result result = null;
using (IDataReader reader = database.ExecuteReader(command))
{
if (reader.Read())
result = new Result(reader);
}
return result;

我如何确定我的阅读器正在关闭?我注意到我的应用程序有时无法在后续加载时加​​载。我怀疑有什么东西被打开了。但我不知道如何追踪它。

根据上面显示的代码,阅读器不应该因为“使用”而被关闭和处理吗?

谢谢!

最佳答案

读取器保证关闭,因为它被包装在 using 中。然而,DbCommand还实现了 IDisposable 并且没有对它的 using/dispose 调用。

Database database = DatabaseFactory.CreateDatabase();
using(DbCommand command = database.GetStoredProcCommand("MyStoredProcedureName"))
{
//snip (no change)
}
return result;

读取器不代表底层连接,只是读取响应的缓冲区。

关于C# 读者处理审查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5812056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com