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

Como utilizar varios SqlDataReader.

Estas en el tema de Como utilizar varios SqlDataReader. en el foro de .NET en Foros del Web. Que tal mi duda es la siguiente, recien empiezo en Visual basic.net y en visual basic 6 estaba acostumbrado a utilizar varios recordset al mismo ...
  #1 (permalink)  
Antiguo 15/04/2004, 13:50
 
Fecha de Ingreso: abril-2004
Mensajes: 4
Antigüedad: 20 años
Puntos: 0
Mensaje Como utilizar varios SqlDataReader.

Que tal mi duda es la siguiente, recien empiezo en Visual basic.net y en visual basic 6 estaba acostumbrado a utilizar varios recordset al mismo tiempo, ahora .net me dice que tengo que cerrar los sqldatareader porque estan haciendo referencia a la misma conexion. Como puedo manipular simultaneamente varias tablas en modo conectado.
Gracias.
  #2 (permalink)  
Antiguo 15/04/2004, 14:35
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Hola y bienvenido

Lo que tienes que hacer es usar tu primer reader, cerrar la conexion, si es necesario volverlo a usar y volver a abarir y cerral tu conexion...etc..

Ejemplo. (voy a utilizar los mismo objetos connection, reader and command )

Cita:
Dim oConn As New SqlConnection(ConfigurationSettings.AppSettings("t u_conexion"))
Dim cmd As New SqlCommand("tu query", oConn)
oConn.Open()
Dim rs As SqlDataReader = cmd.ExecuteReader
If rs.Read then
...
...bla bla
End If
rs.Close()
oConn.Close()

cmd.CommandText = "otra query"
cmd.Connection = oConn
oConn.Open()
rs = cmd.ExecuteReader

If rs.Read Then
...
...blabla
End If

rs.Close()
oConn.Close()
Ahora bien si quieres ocupar varios readers tienes que declarar otro..(no el mismo, ya que se encuentra abierto)


Cita:
Dim oConn1 As New System.Data.SqlClient.SqlConnection(ConfigurationS ettings.AppSettings("cadena de conexion"))

Dim oConn2 As New System.Data.SqlClient.SqlConnection(ConfigurationS ettings.AppSettings("cadena de conexion"))

Dim myCMD As SqlCommand = New SqlCommand("query",oConn1)
oConn1.Open()
Dim dr1 As SqlClient.SqlDataReader = myCMD.ExecuteReader

do while dr1.read
...
...
Dim cmd2 As New SqlClient.SqlCommand("query",oConn2 )
oConn2.Open()
Dim dr2 As SqlClient.SqlDataReader = cmd2.ExecuteReader

do while dr2.read
...
...
loop

dr2.close
oConn2.close

loop

dr1.close
oConn1.close
Espero te sirva el ejemplo
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 15/04/2004, 14:49
 
Fecha de Ingreso: abril-2004
Mensajes: 4
Antigüedad: 20 años
Puntos: 0
Gracias Rootk.
Osea no hay alguna otra forma en la que no tenga que declarar e instanciar una nueva conexion a mi base de datos cada vez que quiera usar un datareader al mismo tiempo???. No recargará mi Sql Server?.
Gracias.
  #4 (permalink)  
Antiguo 15/04/2004, 14:51
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Es que cada dr (datareader) necesita de una conexion... pero si quieres puedes intentarlo con datasets...aunque depende de lo que estés haciendo.
  #5 (permalink)  
Antiguo 15/04/2004, 15:17
 
Fecha de Ingreso: abril-2004
Mensajes: 4
Antigüedad: 20 años
Puntos: 0
Mira, tengo entendido que los dataSets los utilizas unicamente para modo no conectado donde mandas tu informacion a formato XML y luego la actualizas, y la aplicacion que estoy realizando es un sistema de ventas, transaccional a una base de datos local, no es web. Pero si me pudieras aclarar eso te agradeceria bastante en que casos debo utilizar datasets y en que casos datareader?
  #6 (permalink)  
Antiguo 15/04/2004, 16:37
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
los dataSets los utilizas unicamente para modo no conectado donde mandas tu informacion a formato XML
Mira.. de hecho los datasets guardan la información en formato xml pero eso no quiere decir que no pueda obtener los datos de forma normal..., puedes llenar un grid, un combo, un datalist.. etc.. etc... no solo trabajar con XML.

ahora cuando usar uno y cuando usar otro eso depende de tí... pero por lo regular si quierer trabajar con datos de solo forward only (como era el recordset de VB.6) usas un reader (llenar un combo, un listbox, etc), y si vas a navegar por tu registros y obtener info en cualquier posición pues usas un dataset. (lo que era el dinamic de VB6.0)

Pero en cuestiones de rapidez obviamente es mas rápido el datareader. (aunque estoy conectado )


Lo que te comento es de forma muy general ya que cada uno de ellos tiene todavía mas que hablar

Saludos
  #7 (permalink)  
Antiguo 16/04/2004, 08:28
 
Fecha de Ingreso: abril-2004
Mensajes: 4
Antigüedad: 20 años
Puntos: 0
Gracias. te agradezco bastante tu ayuda.

Saludos.
  #8 (permalink)  
Antiguo 09/12/2009, 10:41
 
Fecha de Ingreso: septiembre-2007
Mensajes: 54
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Como utilizar varios SqlDataReader.

mi consulta como inserto o actualizo tengo algunos detalles o necesito crear dos conecciones y abrirlas ...... me imagino es porque el comando esta como reader o hay otra forma ???

'--------------------------------------------------------------------

Dim oConn As New SqlConnection(ConfigurationSettings.AppSettings("t u_conexion"))
Dim cmd As New SqlCommand("select * from TABLA where CAMPO = XXX ", oConn)
oConn.Open()

Dim rs As SqlDataReader = cmd.ExecuteReader

If rs.Read then
' se encuentra los datos actualizo
strsql = "update tabla set campo1 = z1 , campo2 = z2 where campo1 = x1
' esta es la parte que me falta


else
' no se encuentra los datos inserto
strsql = "insert into tabla (campo1 , campo2 )value (x1,x2)"
' esta es la parte que me falta


End If
rs.Close()
oConn.Close()

'---------------

[email protected]
  #9 (permalink)  
Antiguo 09/12/2009, 10:57
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Como utilizar varios SqlDataReader.

Dale una leida a esto http://msdn.microsoft.com/en-us/libr...9(SQL.90).aspx

PD: revivir temas viejos solo si contribuyes a ellos y no si preguntas.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
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

SíEste tema le ha gustado a 1 personas




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