Bloqueo al leer Datareader con ACCESS

24/08/2005 - 15:05 por Javier Jurado | Informe spam
Hola a todos, tengo el problema de que al intentar recoger datos desde
tablas de Access mediante Datareader se me bloquea el programa cuando
encuentra un campo vacio y sin valor predeterminado, en la recogida de datos
estoy utilizando ISDBNULL() en la forma siguiente:

dim Dtr as oledb.oledbdatareader
dim sqltext as string = "Select..
dim Cn as new Oledb.OledbConnection
Cn.ConnectionString = "."
Cn.Open
dim Cmd as new Oledb.OledbCommand(SQltext,Cn)
Dtr=Cmd.ExecuteReader

If Dtr.HasRows Then
do while Dtr.Read
if not IsDBNull(Dtr.GetString(0)) Then
Localidad = Dtr.GetString(0)
end if
Loop
End If

no sé que es lo que viene de la Tabla pero lo cierto es que si aún no he
metido datos en el campo que quiero sacar al llegar a la línea del IsDBNull
el programa se para y ya no sigue, sabeis si puedo utilizar otra función que
solucione el bloqueo.

un saludo
 

Leer las respuestas

#1 Julio Casal
25/08/2005 - 07:31 | Informe spam
Qué tal Javier. El problema parece darse porque estás leyendo el valor del
reader antes de haber verificado el Null. Modifica tu sentencia para que se
vea algo así:

While Dtr.Read
If Not Dtr.IsDBNull(0) Then
Localidad = Dtr.GetString(0)
end if
End While


Espero haber podido ayudarte amigo.

Saludos.
Julio Casal
.Net Solution Developer
MCAD
Grupo Lebed


"Javier Jurado" wrote:

Hola a todos, tengo el problema de que al intentar recoger datos desde
tablas de Access mediante Datareader se me bloquea el programa cuando
encuentra un campo vacio y sin valor predeterminado, en la recogida de datos
estoy utilizando ISDBNULL() en la forma siguiente:

dim Dtr as oledb.oledbdatareader
dim sqltext as string = "Select..
dim Cn as new Oledb.OledbConnection
Cn.ConnectionString = "."
Cn.Open
dim Cmd as new Oledb.OledbCommand(SQltext,Cn)
Dtr=Cmd.ExecuteReader

If Dtr.HasRows Then
do while Dtr.Read
if not IsDBNull(Dtr.GetString(0)) Then
Localidad = Dtr.GetString(0)
end if
Loop
End If

no sé que es lo que viene de la Tabla pero lo cierto es que si aún no he
metido datos en el campo que quiero sacar al llegar a la línea del IsDBNull
el programa se para y ya no sigue, sabeis si puedo utilizar otra función que
solucione el bloqueo.

un saludo



Preguntas similares