Saber si Read() encuentra registros

27/09/2007 - 12:05 por mediocad | Informe spam
Hola,

Resueltos otros problemas, me surge el siguiente. Hago una consulta y deseo
saber si ha encontrado algún registro. datosProyecto.Read me devuelve true o
false si encuentra o no. Si no encuentra, FALSE, perfecto, pero si encuntra,
el primer registro se lo salta. ¿Es que al usar la primer vez Read() para que
me devuelva true o false ya ha leído el primero y por eso pasa al segundo?

Dim cmd As New SqlCommand(sb.ToString(), Me.conn)
Me.conn.Open()
Dim datosProyecto As SqlDataReader = cmd.ExecuteReader()

Dim bool As Boolean = datosProyecto.Read
If bool = False Then
Exit Sub
End If

While datosProyecto.Read()


End While

Muchas gracias y un saludo

Preguntas similare

Leer las respuestas

#1 AngelGarza
27/10/2007 - 02:11 | Informe spam
mediocard, que tal?

Cual es la intencion de la condicion previa al WHILE??

Te pregunto porque con el ciclo como lo tienes, si no trae nada el reader
no ejecutara nada de lo que hay en While. Tienes codigo posterior al While
que no quieres que se ejecute o por que la condicion??

Saludos

"mediocad" wrote:

Hola,

Resueltos otros problemas, me surge el siguiente. Hago una consulta y deseo
saber si ha encontrado algún registro. datosProyecto.Read me devuelve true o
false si encuentra o no. Si no encuentra, FALSE, perfecto, pero si encuntra,
el primer registro se lo salta. ¿Es que al usar la primer vez Read() para que
me devuelva true o false ya ha leído el primero y por eso pasa al segundo?

Dim cmd As New SqlCommand(sb.ToString(), Me.conn)
Me.conn.Open()
Dim datosProyecto As SqlDataReader = cmd.ExecuteReader()

Dim bool As Boolean = datosProyecto.Read
If bool = False Then
Exit Sub
End If

While datosProyecto.Read()


End While

Muchas gracias y un saludo
Respuesta Responder a este mensaje
#2 Alberto Poblacion
27/10/2007 - 10:40 | Informe spam
"mediocad" wrote in message
news:
¿Es que al usar la primer vez Read() para que
me devuelva true o false ya ha leído el primero y por eso pasa al segundo?



Efectivamente, en cuanto el DataReader hace un Read ya trae un registro.
Si vuelves a hacer otro Read, se salta al siguiente.
Si quieres saber si tiene registros si traer ninguno, puedes usar la
propiedad HasRows del datareader.
Respuesta Responder a este mensaje
#3 mediocad
29/10/2007 - 08:26 | Informe spam
Gracias a los dos. Con HasRows me ha servido perfectamente.

Un saludo

"Alberto Poblacion" wrote:

"mediocad" wrote in message
news:
> ¿Es que al usar la primer vez Read() para que
> me devuelva true o false ya ha leído el primero y por eso pasa al segundo?

Efectivamente, en cuanto el DataReader hace un Read ya trae un registro.
Si vuelves a hacer otro Read, se salta al siguiente.
Si quieres saber si tiene registros si traer ninguno, puedes usar la
propiedad HasRows del datareader.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida