Quiero que mi base de datos compruebe si el usuario está registrado a la hora de acceder con MySQL

Hola experto, que pena tanta molestia, es que estoy desarrollando un proyecto importante en visual y quiero que quede lo mejor posible. Tengo un formulario de registro de usuarios y ya logro almacenar todos sus datos en una base de datos mysql. Lo que quiero es que en la ventana inicial cuando el usuario quiera iniciar sesión, se conecte a la base de datos y verifique si dicho usuario y dicha contraseña existen dentro de la base de datos y si es el caso me muestre el siguiente formulario. En realidad no se bien como iría la consulta o si con un dataset se puede. Te agradecería alguna asesoría. Vb 2003 y Mysql Server 5.0

1 Respuesta

Respuesta
1
Es más fácil de lo que parece, solo tienes que tener algo parecido a esto:
1. Abres una conexión con el connection.
2. Envias la consulta con el command
Ej:
SELECT Count(user) FROM USUARIOS WHERE user='paco' AND pwd='1234'
3. Haces un executereader
4. Haces con datareader un read y lo metes una variable
5. Cierras la conexión.
Si el valor que te devuelve es 1 es ok.
Te pongo un ejemplo con SQL SERVER:
Private Oledbcn As Oledbc.OledbcConnection 'Oledbc de Conexion
Private Oledbcmd As Oledbc.OledbcCommand 'Oledbc de comandos
Private Oledbcdr As Oledbc.OledbcDataReader 'Oledbc de lectura
'Dentro de una funcion pones
Dim ID_Existe As Integer
Oledbcn = New Oledbc.OledbcConnection(CONEXION) 'Establecemos la conexion
Oledbcn.Open()
Oledbcmd = New Oledbc.OledbcCommand(SQL, Oledbcn)
Oledbcdr = Oledbcmd.ExecuteReader
While (Oledbcdr.Read()) 'X si da + de 1 valor
If (Oledbcdr.IsDBNull(0) <> True) Then
ID_Tipo = Oledbcdr(Nombre)
ElseIf (Oledbcdr.IsDBNull(0) = True) Then
ID_Tipo = 0
End If
End While
Oledbcdr. Close()
Oledbcn. Close()
Hola experto, muchas gracias por el aporte, en realidad aun tengo dudas.
Son las siguientes:
1.Para que se declara la variable ID_existe.
2. La variable Id_Tipo vendría a ser dentro de ese código Id_existe.
La verdad con tu ayuda hice la siguiente función en Mysql:
Private Function ValidarUsuario()
Dim us_existe As Integer
consulta = "SELECT Codigo FROM USUARIOS WHERE Codigo='20032078074'"
cnn = New MySqlConnection(ConexionBaseDatos)
cnn.Open()
mc = New MySqlCommand(consulta, cnn)
mdr = mc.ExecuteReader()
While (mdr.Read())
If (mdr.IsDBNull(0) <> True) Then
us_existe = mdr(20032078074)'Aca esta el error
ElseIf (mdr.IsDBNull(0) = True) Then
us_existe = 0
End If
End While
mdr.Close()
cnn.Close()
End Function
Llamo la función en el evento click de un botón, y con un MessageBox. Show(consulta), intento mostrar algun dato dentro de la BD, pues para probar.
Me sale el siguiente error:
Could not find specified column in results.
Se que tengo algo mal en la parte de
us_existe = mdr(20032078074), pero no se como arreglarlo, si me puedes colaborar te estare muy agradecido. Aunque de todas formas gracias por el primer aporte, fue un gran avance. :D :D :D ...
Perdona pero parece ser que se me fue la pinza, el id_existe es el id_tipo.
Donde pone ID_Tipo = Oledbcdr(Nombre), el nombre es el nombre de la columna en tu caso seria:
us_existe = mdr("Codigo")
Hola experto, ya tengo más o menos clara la función, pero aun tengo dos dudas:
1. Como hago para verificar un registro que yo digite en un textbox, y cuando le de click en Aceptar, lo busque en la base de datos y si existe me muestre el siguiente form.
2. Cuando hago el select para buscar un campo que contenga caracteres, me sale: No se puede hacer la conversión de "Tal cosa" al tipo Integer. Es porque us_existe (en tu caso Id_existe) se definió como integer, pero si busco campos de tipo numérico, no me hace nada, estoy confundido.
Te agradezco si me puedes echar una mano, Gracias y que pena la novatada.
De nada
Lo que normalmente se hace es SELECT Count(Código) AS EXISTE FROM USUARIOS WHERE Codigo='20032078074', si EXISTE es igual a 1 muestras la ventana del programa y si es 0 es que no existe.
Para mostrar el siguiente form tienes que ocultar ese que seria el principal y mostrar el que contendrá la aplicación.
Ej:
Tenemos esta función:
Private Function ValidarUsuario()
Dim us_existe As Integer
consulta = "SELECT COUNT(Codigo) AS EXISTE FROM USUARIOS WHERE Codigo='20032078074'"
cnn = New MySqlConnection(ConexionBaseDatos)
cnn.Open()
mc = New MySqlCommand(consulta, cnn)
mdr = mc.ExecuteReader()
While (mdr.Read())
If (mdr.IsDBNull(0) <> True) Then
us_existe = mdr("EXISTE")
ElseIf (mdr.IsDBNull(0) = True) Then
us_existe = 0
End If
End While
mdr.Close()
cnn.Close()
return us_existe
End Function
Y en el formulario del login tenemos:
if(ValidarUsuario() = 1)then
Me.Hide
Dim FPrograma as new Form2
FPrograma.show
else
messagebox.show("El usuario no existe")
end if

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas