Respondida Validar valores en base de datos

  • lunes, 16 de abril de 2012 5:50
     
      Tiene código

    Hola gente del foro

    Tengo un formulario de inicio de sesión, usuario y contraseña. Puedo ingresar al sistema con cualquier usuario sin ningún problema.

    Lo que quiero hacer es poder validar por ejemplo si entro con el usuario admin que aparezca un mensaje en el que diga que es el admin o si es el usuario pepe le muestre otro mensaje diferente.

    Hasta ahora tengo el siguiente código:

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
            Try
                conectar.Open()
                verificarUsuario()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                conectar.Close()
            End Try
        End Sub
    
        Private Function verificarUsuario()
            Try
                Dim query As String = "Select * from usuarios where username = @usuario and password = @contraseña"
    
                Dim comando As SqlCommand
                comando = New SqlCommand(query, conectar)
                comando.Parameters.AddWithValue("@usuario", UsernameTextBox.Text)
                comando.Parameters.AddWithValue("@contraseña", PasswordTextBox.Text)
                Dim adaptador As SqlDataAdapter = New SqlDataAdapter(comando)
                Dim dt As DataTable = New DataTable()
    
                adaptador.Fill(dt)
    
                If dt.Rows.Count > 0 Then
                    MsgBox("Bienvenido al sistema", MsgBoxStyle.Information)
                    Form1.Show()
                    Me.Hide()
                Else
                    MsgBox("Datos de ingreso incorrectos", MsgBoxStyle.Exclamation)
                End If
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
            Return 0
        End Function

    Cualquier ayuda estaré muy agradecido.

    Saludos,

Todas las respuestas

  • lunes, 16 de abril de 2012 7:09
     
     

    Hola:
    En la tabla usuarios, crea un campo nuevo
    MENSAJE   Varchar(50)
    y lo llenas con el mensaje personalizado para el usuario.

    Cambia esta linea
    MsgBox("Bienvenido al sistema", MsgBoxStyle.Information)
    por esta otra:
    MsgBox(Convert.ToString(dt.Rows(0)("MENSAJE")), MsgBoxStyle.Information)

    Un saludo desde Bilbo
    Carlos

  • lunes, 16 de abril de 2012 7:22
     
     Respondida Tiene código

    Buenas Arnold CR.

    Si es únicamente para el usuario admin porqué no añades la condición en el propio UsernameTextox.Text, algo como esto:

    If dt.Rows.Count > 0 Then
         If UsernameTextBox.Text = "admin" Then
              MsgBox("Bienvenido al sistema Administrador", MsgBoxStyle.Information)
         Else
              MsgBox("Bienvenido al sistema Usuario", MsgBoxStyle.Information)
         End If
         Form1.Show()
         Me.Hide()
    Else
         MsgBox("Datos de ingreso incorrectos",      MsgBoxStyle.Exclamation)
    End If
    

    Un saludo.


    Antonio López Atienza
    Microsoft Community Contributor
    .NET Developer
    Code examples
    http://www.lopezatienza.es

    • Marcado como respuesta Arnold CR martes, 17 de abril de 2012 4:22
    •  
  • lunes, 16 de abril de 2012 12:48
    Moderador
     
     Respondida Tiene código

    hola

    alli validas que el usuario existe o no en la tabla, pero no cuentas con algun lugar la definicion del rol del usuario ?

    ya sea que lo implementes como campo en la misma tabla de usuario, quizas un campo que indique su rol

    Private Function ObtenerRol() As Integer
    	Try
    		Dim query As String = "Select rol from usuarios where username = @usuario"
    
    		Dim comando As SqlCommand
    		comando = New SqlCommand(query, conectar)
    		comando.Parameters.AddWithValue("@usuario", UsernameTextBox.Text)
    		
    		Dim rol As Object = cmd.ExecuteScalar()
    
    		If rol IsNot DbNull.Value Then
    			Return CInt(rol)
    		Else
    			Return 0
    		End If
    		
    	Catch ex As Exception
    		MessageBox.Show(ex.Message)
    		Return 0
    	End Try
    
    End Function

    en este caso recuperas el rol asignado un cero sera sin rol, un 1 sera usuario comun, 2 sera admin

    entocnes invocas a la funcion y luego haces el Select Case para mostrar el mensaje del rol de ese usuario

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Arnold CR martes, 17 de abril de 2012 4:22
    •  
  • martes, 17 de abril de 2012 4:23
     
     

    Gracias por las respuestas,

    me han sido de bastante ayuda.