Error en lector.close()

27/05/2010 - 23:32 por Elisa | Informe spam
Hola grupo,

Porque en el siguiente código:

Try

lector = comando.ExecuteReader
While lector.Read()
End while

Catch exc As OdbcException
MessageBox.Show(exc.Message)
Finally

lector.Close()
conexion.Close()

End Try

La instruccion lector.close() me aparece el siguiente warning.

La variable se utiliza antes de que se la haya asignado un valor.

No se como quitarlo.

Muchísimas gracias,
 

Leer las respuestas

#1 Alberto Poblacion
28/05/2010 - 08:52 | Informe spam
"Elisa" wrote in message
news:
Porque en el siguiente código:

Try

lector = comando.ExecuteReader
While lector.Read()
End while

Catch exc As OdbcException
MessageBox.Show(exc.Message)
Finally

lector.Close()
conexion.Close()

End Try

La instruccion lector.close() me aparece el siguiente warning.

La variable se utiliza antes de que se la haya asignado un valor.



El compilador tiene razón. La variable podría utilizarse antes de
asignarle un valor. Suponte que la sentencia SQL produce un error. El Error
se produciría al ejecutar eñ ExecuteReader, y de ahi saltaría la ejecución
al Catch antes de haberle metido ningún valor a la variable "lector". Esa
variable llegaría con Nothing, y al intentar hacerle un Close, se produciría
un error.


No se como quitarlo.



El error de compilación se puede resolver poniendo "Dim lector as
SqlDataReader = Nothing" en la declaración, pero eso no te quitaría el error
en tiempo de ejecución si se diera la circunstancia que hemos mencionado.
Sería mejor que movieras la lína "lector.Close" a dentro del Try en lugar
del Finally. Alternativamente, puedes poner en el Catch "if not lector is
nothing then lector.Close()".

Preguntas similares