我有以下使用
在这种情况下,
目前我是这样做的:
但我想知道是否可能像上述那样将它们组合起来?
using
的语句:using (var reader = data.CreateCommand(sql).ExecuteDataReader())
在这种情况下,
data
是一个内部持有SqlConnection
的对象。 CreateCommand(sql)
函数返回SqlCommand
,而ExecuteDataReader
返回SqlDataReader
。由于SqlCommand
和SqlDataReader
都是IDisposable
,所以它们都会被这个using
语句释放吗?目前我是这样做的:
using (var cmd = data.CreateCommand(sql))
using (var reader = cmd.ExecuteDataReader())
但我想知道是否可能像上述那样将它们组合起来?
using
语句来完成它。 - Matthew WatsonSqlConnection
将会释放所有使用它的资源,因此SqlCommand
和SqlDataReader
也会随之被释放... 也就是说,我认为释放SqlCommand
将会释放SqlDataReader
。所以你不必将SqlReader
放在using
语句中。 - SvekSqlConnection
不会释放相关的SqlCommand
或读取器! - S.Serpooshan