Hola, empece hace poco con vb, y tengo una duda al momento de acceder a los datos extraidos de la base de datos mysql, yo tengo esta funcion
Código:
Public Function sql_seleccionar(ByVal consulta As String) As Object
DBCon = New MySQLConnection(New MySQLConnectionString("localhost", "bd", "user", "pass", 3306).AsString)
Try
'Abrimos la conexión y comprobamos que no hay error
DBCon.Open()
Catch ex As MySQLException
'Si hubiese error en la conexión mostramos el texto de la descripción
MsgBox(ex.Message.ToString)
bConexionExitosa = False
End Try
If bConexionExitosa Then
Dim sql As MySQLCommand = New MySQLCommand(consulta, DBCon)
sql.CommandType = CommandType.Text
Dim dr As System.Data.IDataReader
dr = sql.ExecuteReader()
DBCon.Close()
Return dr
Else
Return "Error de conexion con la BD"
End If
End Function
Bueno con esa funcion realizo las consultas de seleccionar registros, y devuelvo un IDataReader, luego cuento los registros (es un login)
Código:
Dim comprobrar_usuario As IDataReader
comprobrar_usuario = sql_seleccionar("SELECT id FROM Usuarios WHERE user='" & usuario & "' AND pass='" & contrasena & "'")
Dim contador As Integer
While comprobrar_usuario.Read()
contador = contador + 1
End While
If contador > 0 Then
While comprobrar_usuario.Read()
MsgBox(comprobrar_usuario("id"))
End While
End If
El problema que tengo es el segundo while no se ejecuta, el primero que contiene el contador si se ejecuta, pero pareciera que mas de un while no funciona, nose que es, y ya probe en la parte del contador poner un MsgBox(comprobrar_usuario("id")) y me envia la alerta bien, asi que la consulta esta bien.
Espero que me puedan ayudar muchas gracias.