Утилизируйте их по отдельности. Вполне возможно, что объекты Reader и Command делают больше в своих процедурах удаления, чем просто разрушают соединение (либо сейчас, либо в будущей версии ADO.NET). Таким образом, чтобы (а) быть явным и (б) быть безопасным, вы должны распоряжаться ими в индивидуальном порядке.
Тот факт, что они реализуют IDisposable, предполагает, что вы всегда должны запускать процедуру Dispose, когда закончите работу с объектом, поэтому лучше не пытаться угадать интерфейс, это не даст вам никакой пользы, и вы Вероятно, в конечном итоге утечка памяти и ручек.
Есть вещи, которые вы можете сделать, чтобы ваш код выглядел чище при вложении using
операторов. Например:
(using SqlConnection conn = new SqlConnection())
(using SqlCommand comm = new SqlCommand())
{
//Do stuff
}
Это выглядит аккуратнее (на мой взгляд), чем вложение скобок.