我在asp.net应用程序中使用microsoft.entrprise.libraries。 我正在调用LoadDataSet。下面的代码使用'使用',所以这意味着 一旦通话结束,所有资源都将被清理。
当对数据库进行调用并且超时并且应用程序中出现错误时会发生什么情况,连接是否会关闭?
谢谢, 罗伯特
public virtual void LoadDataSet(DbCommand command, DataSet dataSet, string[] tableNames)
{
using (var wrapper = GetOpenConnection())
{
PrepareCommand(command, wrapper.Connection);
DoLoadDataSet(command, dataSet, tableNames);
}
}
答案 0 :(得分:1)
using
语句实际上扩展为类似下面的内容,所以是的,如果包装器Dispose()
调用释放所有适当的资源,那么就没有泄漏(至少在wrapper
对象):
var wrapper = GetOpenConnection()
try
{
PrepareCommand(command, wrapper.Connection);
DoLoadDataSet(command, dataSet, tableNames);
}
finally
{
if (wrapper != null)
{
((IDisposable)wrapper ).Dispose();
}
}