如果我在using
块内实例化一个SqlDataReader,是否需要调用close()
关闭读取器?
下面是查找用户的简单示例。
using (var connection = new SqlConnection(Settings.GetValue("SqlConnection")))
{
SqlCommand command = new SqlCommand("select * from Users where Id = @Id", connection);
command.Parameters.Add("@Id", SqlDbType.UniqueIdentifier);
command.Parameters["@Id"].Value = id;
using (SqlDataReader reader = command.ExecuteReaderWithRetry())
{
reader.Read();
if (reader.HasRows)
{
//Do work
}
//Is this neccesary?
reader.Close();
}
}
SqlCommand
也实现了IDisposable
。 - JosephHirn