LoadDataSet是否隐式关闭连接
本文关键字:连接 是否 LoadDataSet | 更新日期: 2023-09-27 18:05:50
我在asp.net应用程序中使用microsoft. enterprise .libraries。我正在调用LoadDataSet。下面的代码使用了using,所以这意味着一旦调用完成,所有资源将被清理。
当对db进行调用并且超时并且在应用程序中抛出错误时会发生什么,连接会被关闭吗?
谢谢,罗伯特。
public virtual void LoadDataSet(DbCommand command, DataSet dataSet, string[] tableNames)
{
using (var wrapper = GetOpenConnection())
{
PrepareCommand(command, wrapper.Connection);
DoLoadDataSet(command, dataSet, tableNames);
}
}
using
语句实际上展开为如下所示,所以是的,如果包装器的Dispose()
调用释放了所有适当的资源,那么就没有泄漏(至少在wrapper
对象内):
var wrapper = GetOpenConnection()
try
{
PrepareCommand(command, wrapper.Connection);
DoLoadDataSet(command, dataSet, tableNames);
}
finally
{
if (wrapper != null)
{
((IDisposable)wrapper ).Dispose();
}
}