none
Inicio de Sesion RRS feed

  • Pregunta

  • soy nuevo en esto de visual 2010 y quiero hacer una conexión con una tabla de mi base de datos que esta hecha en sql sever 2005 pero no se bien como se debe hacer. En mi tabla de usuarios tengo solo el id de usuario en nickname y el pass, ya logre conectar la aplicación con la base pero no se como comparar lo que tengo en mis textbox con los usuarios de mi base si alguien pudiera ayudarme por favor

    Esta es la conexión que uso para mi base de datos

    Imports System.Data.SqlClient
    
    Module Conexion
        Dim cadena As String = "server=ACESAR21-PC;Initial Catalog=DB_MC;Integrated Security=true"
        Public cn As New SqlConnection(cadena)
    
    End Module

    y este es mi FORM de Inicio de sesion

    Public Class frm_sesion
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Me.Close()
            frm_Inicio.Close()
            Me.Dispose(True)
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            llamado()
    
        End Sub
    
        Private Sub TextBox2_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
            If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
                llamado()
            End If
        End Sub
        Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
                llamado()
            End If
        End Sub
        Private Sub llamado()
            Try
                If TextBox1.Text = "" Or TextBox2.Text = "" Then
                    MsgBox("¡Se debe introducir un usuario y contraseña Correcta!")
                Else
    
                    '//Aqui Va ir la Comparacion de La base con el cuadro de texto//
                    'if
    
                    Me.Close()
                    Me.Dispose(True)
                    frm_Inicio.Show()
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub
    End Class
    sábado, 2 de junio de 2012 18:09

Respuestas

  • muchas gracias por tu ayuda creo q ya logre resolver esa parte y asi quedo mi codigo

    Imports System.Data.SqlClient
    Public Class frm_sesion
        Dim da As New SqlDataAdapter
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Me.Close()
            frm_Inicio.Close()
            Me.Dispose(True)
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            iniciar()
    
        End Sub
    
        Private Sub TextBox2_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
            If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
                iniciar()
            End If
            If (e.KeyChar = Convert.ToChar(Keys.Escape)) Then
                End
            End If
        End Sub
        Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
                iniciar()
            End If
            If (e.KeyChar = Convert.ToChar(Keys.Escape)) Then
                End
            End If
        End Sub
        Private Sub Button1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Button1.KeyPress
            If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
                iniciar()
            End If
            If (e.KeyChar = Convert.ToChar(Keys.Escape)) Then
                End
            End If
        End Sub
    
        Private Sub Button2_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Button2.KeyPress
            If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
                iniciar()
            End If
            If (e.KeyChar = Convert.ToChar(Keys.Escape)) Then
                End
            End If
        End Sub
    
        Private Sub iniciar()
            Try
                Dim query, NmUser As String
                Dim reader As SqlDataReader
                ' Creamos el select de la base de datos, trayendo los datos con DOS parametros --> Ususrio y password
                query = "SELECT login, contraseña FROM tbl_usuarios where login = @username and contraseña = @password "
    
                Dim cmd As New SqlCommand(query, cn)
    
                cn.Open()
                ' Pasamos los parametros a la consulta, tomados de lo que este en los textboxes
                cmd.Parameters.Add("@username", SqlDbType.VarChar, 20).Value = TextBox1.Text
                cmd.Parameters.Add("@password", SqlDbType.VarChar, 20).Value = TextBox2.Text
    
                reader = cmd.ExecuteReader()
                ' Si encuentra algo, lo asignamos a las variables NmUser y TPUser
                If reader.Read Then
                    NmUser = reader.GetString(0).ToUpper
                    frm_Inicio.Show()
    
                    MsgBox("Bienvenido " & NmUser & " al sistema.")
                    Me.Close()
                    Me.Dispose(True)
    
                Else
                    MsgBox("Usuario o password incorrecto, trate otra vez..")
                End If
    
                reader.Close()
                cn.Close()
    
            Catch ex As Exception
                MsgBox("ERROR." & ex.Message)
            End Try
    
        End Sub
    End Class

    y el keypress solo lo estuy utilizando para que al momento en que se presione la tecla "Enter" llame al procedimiento 

    • Marcado como respuesta acesar21 domingo, 3 de junio de 2012 0:26
    sábado, 2 de junio de 2012 23:27

Todas las respuestas

  • hola

    para crear un login deberia ser como esto

    Login – Usando Password con Hash

    como veras se realiza previo a iniciar el form principal, el password se le aplcia seguridad con hash

    y por sobre todo se usa parametros en la query

    el keypress no se sua para nada, ese evento no se usa nunca en un login

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    sábado, 2 de junio de 2012 19:18
  • muchas gracias por tu ayuda creo q ya logre resolver esa parte y asi quedo mi codigo

    Imports System.Data.SqlClient
    Public Class frm_sesion
        Dim da As New SqlDataAdapter
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Me.Close()
            frm_Inicio.Close()
            Me.Dispose(True)
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            iniciar()
    
        End Sub
    
        Private Sub TextBox2_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
            If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
                iniciar()
            End If
            If (e.KeyChar = Convert.ToChar(Keys.Escape)) Then
                End
            End If
        End Sub
        Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
                iniciar()
            End If
            If (e.KeyChar = Convert.ToChar(Keys.Escape)) Then
                End
            End If
        End Sub
        Private Sub Button1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Button1.KeyPress
            If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
                iniciar()
            End If
            If (e.KeyChar = Convert.ToChar(Keys.Escape)) Then
                End
            End If
        End Sub
    
        Private Sub Button2_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Button2.KeyPress
            If (e.KeyChar = Convert.ToChar(Keys.Enter)) Then
                iniciar()
            End If
            If (e.KeyChar = Convert.ToChar(Keys.Escape)) Then
                End
            End If
        End Sub
    
        Private Sub iniciar()
            Try
                Dim query, NmUser As String
                Dim reader As SqlDataReader
                ' Creamos el select de la base de datos, trayendo los datos con DOS parametros --> Ususrio y password
                query = "SELECT login, contraseña FROM tbl_usuarios where login = @username and contraseña = @password "
    
                Dim cmd As New SqlCommand(query, cn)
    
                cn.Open()
                ' Pasamos los parametros a la consulta, tomados de lo que este en los textboxes
                cmd.Parameters.Add("@username", SqlDbType.VarChar, 20).Value = TextBox1.Text
                cmd.Parameters.Add("@password", SqlDbType.VarChar, 20).Value = TextBox2.Text
    
                reader = cmd.ExecuteReader()
                ' Si encuentra algo, lo asignamos a las variables NmUser y TPUser
                If reader.Read Then
                    NmUser = reader.GetString(0).ToUpper
                    frm_Inicio.Show()
    
                    MsgBox("Bienvenido " & NmUser & " al sistema.")
                    Me.Close()
                    Me.Dispose(True)
    
                Else
                    MsgBox("Usuario o password incorrecto, trate otra vez..")
                End If
    
                reader.Close()
                cn.Close()
    
            Catch ex As Exception
                MsgBox("ERROR." & ex.Message)
            End Try
    
        End Sub
    End Class

    y el keypress solo lo estuy utilizando para que al momento en que se presione la tecla "Enter" llame al procedimiento 

    • Marcado como respuesta acesar21 domingo, 3 de junio de 2012 0:26
    sábado, 2 de junio de 2012 23:27