Saltar al contenido

¿ExecuteReader (CommandBehavior.CloseConnection) siempre cerrará la conexión?

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 un using 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *