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

Ayuda con dataReader

Estas en el tema de Ayuda con dataReader en el foro de .NET en Foros del Web. Hola amigos! Estoy utilizando visual basic studio 2005 enlazado a una base de datos mysql. Tengo una tabla que se llama peliculas. y ahora mi ...
  #1 (permalink)  
Antiguo 05/05/2009, 10:00
 
Fecha de Ingreso: mayo-2009
Mensajes: 57
Antigüedad: 15 años
Puntos: 0
Ayuda con dataReader

Hola amigos!

Estoy utilizando visual basic studio 2005 enlazado a una base de datos mysql. Tengo una tabla que se llama peliculas. y ahora mi problema es el siguiente:

Tengo un combobox con todos los codigos de las peliculas, de mandera que si voy cambiando de codigo saldrian los datos de la pelicula seleccionada en unos textbox. El código lo tengo en el evento cbPeliEdit_SelectedIndexChanged, es decir, cuando cambie de seleccion el combobox, pero cuando cambio de seleccion me aparecen los datos del primero que seleccione. El código es el siguiente:

Dim DBCon As MySQLConnection
Dim sql As MySQLCommand = New MySQLCommand
Dim lectorEditar As System.Data.IDataReader

sql.CommandText = "SELECT * FROM `peliculas` WHERE `idpelicula` = " & CStr(cbPeliEdit.SelectedItem) & " "
sql.CommandType = CommandType.Text

DBCon.Open()
lectorEditar = sql.ExecuteReader()

'Si lee, lo muestra
If lectorEditar.Read Then
tbNomPeliEdit.Text = CStr(lectorEditar.Item("nombre"))
tbDirPeliEdit.Text = CStr(lectorEditar.Item("director"))
tbProtaPeliEdit.Text = CStr(lectorEditar.Item("protagonista"))
tbProdPeliEdit.Text = CStr(lectorEditar.Item("productor"))
tbCatePeliEdit.Text = CStr(lectorEditar.Item("categoria"))
tbDurPeliEdit.Text = CStr(lectorEditar.Item("duracion"))
tbSinopPeliEdit.Text = CStr(lectorEditar.Item("sinopsis"))
End If

lectorEditar.Close()
DBCon.Close()

como hago para que cada ves que seleccione un codigo me salgan sus datos? Espero que me ayudeis por favor, Gracias de adelantado! Saludos!!
  #2 (permalink)  
Antiguo 05/05/2009, 12:08
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Ayuda con dataReader

Podrías hacer en el evento SelectedChange del combobox esto:

sql.CommandText = "SELECT * FROM `peliculas` WHERE `idpelicula` = " & CStr(cbPeliEdit.text) & " "

Cuando en un combobox eliges un item, el nombre del item que has seleccionado se queda "marcado" en el .text del objeto.

A ver si te funciona
  #3 (permalink)  
Antiguo 06/05/2009, 07:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 57
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con dataReader

Tampoco me funciona, me sigue saliendo los datos del primero.
Gracias de todos modos por tu respuesta cslbcn. Si se te ocurre otra cosa precida, comentamelo porfa.
  #4 (permalink)  
Antiguo 06/05/2009, 14:25
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Ayuda con dataReader

Hola.

Yo lo que veo en tu código que pegaste parece estar correctamente. Por lo tanto yo pondría un punto de interrupción despues del sql para que cuando cambias de valor y el debug llegue ahí veas como quedo el sql generado y veas que valor estas recibiendo, a lo mejor por algun problema siempre recibe el mismo valor. No te desesperes, proba así y fijate que si va cambiando el sql a medida que vas cambiando el combo, avisa cualquier cosa
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #5 (permalink)  
Antiguo 06/05/2009, 14:48
 
Fecha de Ingreso: mayo-2009
Mensajes: 57
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con dataReader

Lo he probado, y me sale la consulta bien:
SELECT * FROM `peliculas` WHERE `idpelicula` = 1

Cuando paso al 2:
SELECT * FROM `peliculas` WHERE `idpelicula` = 2

Todo va como la seda:S...
  #6 (permalink)  
Antiguo 06/05/2009, 15:49
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
Respuesta: Ayuda con dataReader

Que tal manu_cai

un par de recomendaciones

1.- Mejor utiliza parámetros
2.- Evitar hacer un select * es mejor declarar los campos que requieres
3.- Es mejor hacerlo con Stored Procedures (Sp´s) (apartir de la version 5.0 de mysql soporta SP´s

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 07/05/2009, 11:18
 
Fecha de Ingreso: mayo-2009
Mensajes: 57
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con dataReader

No entiendo el 3 paso...me lo podrias explicar?

Gracias
  #8 (permalink)  
Antiguo 07/05/2009, 15:56
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
Respuesta: Ayuda con dataReader

Si no has trabajado con Stored Procedures (para mysql) date una vuelta por aqui

Es una forma más limpia de hacer las cosas además de tener un mejor performance así como la separación de tu code con los objetos de acceso a datos

Salu2
  #9 (permalink)  
Antiguo 11/05/2009, 05:36
 
Fecha de Ingreso: mayo-2009
Mensajes: 57
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con dataReader

Perfecto! me funciono, con tiempo, pero funciono. muchas gracias rootk.

Ahora otra dudilla jeje: como introduzo un formulario dentro de otro formulario? hay algun objeto?

gracias de antemano
  #10 (permalink)  
Antiguo 11/05/2009, 08:11
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Ayuda con dataReader

Si es asp.net podes meter dentro de una celda del gridview otro gridview y le asignas desde el evento dataRowBound de la grilla principal el datasource al gridview secundario, podes ver estos ejemplos:
http://hanzcocchi.net/gridview-anidado-en-asp-net/
http://www.vbdotnetheaven.com/Upload...eGridView.aspx
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #11 (permalink)  
Antiguo 11/05/2009, 10:13
 
Fecha de Ingreso: mayo-2009
Mensajes: 57
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con dataReader

Perdon por no especificar el lenguaje. el lenguaje es visual basic studio 2005, pero muchas gracias de todas maneras, es muy interesante.
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 08:44.