Queremos proponerte la mejor información que encontramos on line. Queremos que te sirva de ayuda y si deseas compartir cualquier detalle que nos pueda ayudar a crecer hazlo con libertad.
Solución:
Sí, incluso si arroja una excepción, cerrará la conexión. Si no especifica CommandBehavior.CloseConnection
y cierras la conexión, tu código de llamada no puede acceder al contenido del lector.
También de MSDN:
Cuando se ejecuta el comando, el objeto Connection asociado se cierra cuando se cierra el objeto DataReader asociado.
Debe asegurarse de que el lector esté cerrado cuando haya terminado con él. Lo bueno de todo esto es que lo tienes envuelto alrededor de una declaración de uso y no estás usando try/catch/finally
en este caso, el lector se cerrará, lo que cerrará la conexión con la base de datos.
Personalmente prefiero un using
declaración de la cláusula a cerrar/eliminar la conexión, simplemente por razones de construcción paralela, igual que en la buena gramática inglesa.
Desde mi punto de vista usando el CommandBehavior
no está equilibrado y, por lo tanto, es impredecible.
Constantemente les digo a mis desarrolladores que sean simples y consistentes.
Como si se olvidaran de poner el CommandBehavior
…
no lo veré…
pero si no usan unusing
declaración…
yo voluntad verlo ya que es muy importante.
Te mostramos reseñas y valoraciones
Recuerda algo, que tienes concesión de comentar tu experiencia si diste con el arreglo.