[英]Data reader in command using statement
我有一个旧系统,我注意到以下代码
var dataTable = new DataTable();
using(var connection = new SqlConnection())
using(var command = connection.CreateCommand())
{
command.commandType = CommandType.StoredProcedure;
//Attach command parameters etc.
var reader = command.ExecuteReader();
dataTable.Load(reader);
}
return dataTable;
通常,我会将数据读取器包装到using语句中,这样行将显示为:
using(var reader = command.ExecuteReader())
{
dataTable.Load(reader);
}
我想我会安排时间来更新这些方法,以包括数据读取器的using语句,但是我想知道是否有人知道在上面的实例中,当命令或连接被处置了吗?
您必须自己做,因为该命令不会为您清除DataReader
。 参见示例SqlCommand.Dispose
。
由于DataTable.Load
不会保留对所用DataReader
的引用,因此在这种情况下可以使用using
。 作为证明,请参见DataTable
的参考源 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.