Согласно это , Dispose () для SqlConnection звонки Close () , поэтому вам не нужно оба, просто Dispose () . То же самое для SqlDataReader ?
Вам нужно только позвонить Утилизировать , потому что звонки Закрыть .
Я использовал .NET Reflector и обнаружил, что DbDataReader's (основа SqlDataReader ) Dispose метод вызывает Закрыть .