Foros del Web » Programación para mayores de 30 ;) » .NET »

dada con dos consultas a la base de datos

Estas en el tema de dada con dos consultas a la base de datos en el foro de .NET en Foros del Web. hola maestros soy nuevo net y tengo la siguiente duda. en el form1 tengo una consulta a la base de datos. sql = "SELECT * ...
  #1 (permalink)  
Antiguo 18/06/2009, 08:25
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
dada con dos consultas a la base de datos

hola maestros soy nuevo net y tengo la siguiente duda.

en el form1 tengo una consulta a la base de datos.

sql = "SELECT * WHERE pep"

comandos.CommandText = sql
comandos.CommandType = CommandType.Text
comandos.Connection = conexion

lect = comandos.ExecuteReader()

While lect.Read()
MsgBox(lect(5))
End While
lect.Close()

ahora en este form hay un boton que llama a otro formulario que llena una grilla y tambien hace una consulta la base de datos usando la misma mecanica del form1


form2


sql = "SELECT * FROM calles "

comandos1.CommandText = sql
comandos1.CommandType = CommandType.Text
comandos1.Connection = conexion 'le digo cual es la variable de conexion

lect1 = comandos1.ExecuteReader() ' (aqui marca el error)

While lect1.Read()

St = New String() {lect1.GetString(0), lect1.GetString(1)}
DataGridView1.Rows.Add(St)

End While


lect1.Close()



el error dice
no se controlo mysqlexception
There is already an open DataReader associated with this Connection which must be closed first.

gracias por la orientacion.
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #2 (permalink)  
Antiguo 18/06/2009, 08:37
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: dada con dos consultas a la base de datos

al ejecutar cada execute reader debes cerrar la conexion para poder ejecutar otro execute reader

comandos.ExecuteReader(CommandBehavior.CloseConnec tion)

y luego vuelve a a abrir la conexion
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 18/06/2009, 08:56
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
Respuesta: dada con dos consultas a la base de datos

muchas gracias por tu orientacion , lo voy a intentar...


saludos,
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #4 (permalink)  
Antiguo 18/06/2009, 09:25
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
Respuesta: dada con dos consultas a la base de datos

hola me falla si lo pongo en el form1

sql = "SELECT * WHERE pep"

comandos.CommandText = sql
comandos.CommandType = CommandType.Text
comandos.Connection = conexion

lect = comandos.ExecuteReader()

While lect.Read()
MsgBox(lect(5))
End While
lect.Close()

comandos.ExecuteReader(CommandBehavior.CloseConnec tion)


si lo pongo al final de la consulta en el form1 sale este error
There is already an open DataReader associated with this Connection which must be closed first.



si lo pongo en el principio de la busqueda del otro form sucede algo similar..

saludos y gracias por la orientacion
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #5 (permalink)  
Antiguo 18/06/2009, 09:31
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: dada con dos consultas a la base de datos

cambia esto

lect = comandos.ExecuteReader()

por esto

lect = comandos.ExecuteReader(CommandBehavior.CloseConnec tion)
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #6 (permalink)  
Antiguo 18/06/2009, 09:33
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: dada con dos consultas a la base de datos

Podrias explicar que consultas con esto:

sql = "SELECT * WHERE pep"

Es con el objetivo de ayudarte.
  #7 (permalink)  
Antiguo 18/06/2009, 12:43
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
Respuesta: dada con dos consultas a la base de datos

ya me funciono esa parte logre cerrarlo , pero ahora lo logro hacer el poder activarlo en el otro form me dice que


lect1 = comandos1.ExecuteReader()

Connection must be valid and open.


gracias por tu valiosa informacion..

Phillip gracias, pero el tema no pasa porque que se consulte si no que se hace para manejar dos consultas en el caso que se diera.

saludos.
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #8 (permalink)  
Antiguo 25/06/2009, 12:35
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
Respuesta: dada con dos consultas a la base de datos

porfavor necesito orientacion en este tema q es algo enredado..


saludos y gracias.
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #9 (permalink)  
Antiguo 26/06/2009, 04:48
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 152
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: dada con dos consultas a la base de datos

¿Has abierto la conexion?
conexion.open()
  #10 (permalink)  
Antiguo 26/06/2009, 07:33
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
Respuesta: dada con dos consultas a la base de datos

gracias por la pista eso era ..saludos.
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:05.