Alguien me puede ayudar con lo siguiente por favor.

He creado una base de datos llamada dbhr y una tabla que se llama usuario con dos campos ‘nombre de usuario’ y ‘contraseña’ tener el tipo de datos VARCHAR.
Tengo un registro en formulario con dos cuadros de texto (tbxUsername,tbxPassword) y un botón ACEPTAR. He conectado mi base de datos para autenticar el nombre de usuario y contraseña. Pero siempre me da contraseña incorrecta mensaje. No sé de donde me salió mal.
Por favor, ayudar.

Yo uso MySQL Workbench 6.1

Gracias de antemano.

Aquí es el VB.NET registro en el código del botón.

Imports MySql.Data.MySqlClient

Public Class Login

    Dim mydbcon As MySqlConnection
    Dim COMMAND As MySqlCommand

    ' TODO: Insert code to perform custom authentication using the provided username and password 
    ' (See http://go.microsoft.com/fwlink/?LinkId=35339).  
    ' The custom principal can then be attached to the current thread's principal as follows: 
    '     My.User.CurrentPrincipal = CustomPrincipal
    ' where CustomPrincipal is the IPrincipal implementation used to perform authentication. 
    ' Subsequently, My.User will return identity information encapsulated in the CustomPrincipal object
    ' such as the username, display name, etc.

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        mydbcon = New MySqlConnection
        mydbcon.ConnectionString = "server=localhost;userid=root;password=rootword;database=hrdb"
        Dim reader As MySqlDataReader

        Try
            mydbcon.Open()
            Dim Query As String
            Query = "select * from user where username= ' " & tbxUsername.Text & "' and password= ' " & tbxPassword.Text & "' "
            COMMAND = New MySqlCommand(Query, mydbcon)
            reader = COMMAND.ExecuteReader

            Dim count As Integer
            count = 0
            While reader.Read
                count = count + 1

            End While

            If count = 1 Then
                MessageBox.Show("Username and password are correct")
            ElseIf count > 1 Then
                MessageBox.Show("Username and password are duplicate")
            Else
                MessageBox.Show("Username and password are wrong")
            End If
            mydbcon.Close()
        Catch ex As MySqlException
            MessageBox.Show(ex.Message)
        Finally
            mydbcon.Dispose()
        End Try

    End Sub

Por favor haga clic en los siguientes enlaces para ver la tabla de base de datos los registros de datos y tipos de datos.

Haga clic en aquí!

  • ¿Por qué no colocar su código del botón en este post en lugar de proporcionar un enlace a algún sitio de descarga?
  • Código del botón de agregar. Yo también tenía que proporcionar db ajustes por eso puedo adjuntar la captura de pantalla.
  • OK… ahora ¿qué mensaje de obtener siempre? BTW… por el aspecto de las cosas que son el almacenamiento de la contraseña sin cifrar es esta su intención?
  • Soy muy nuevo en MySQL y no sé todas las características de seguridad y las cosas que debo tomar en cuenta al crear la base de datos. Acabo de hacer una tabla como la que puedo aprender de los vídeos de YouTube. Yo lo que había sido capaz de crear una base de datos. Yo no sé acerca de cifrado y todo eso, por favor darme alguna información sobre el cifrado si se pudiera. Me dio el nombre de usuario como abc y la contraseña como ab pero el mensaje que recibí es el ‘nombre de Usuario y la contraseña son incorrectos’. Pero existen en la base de datos.
  • Siento haber estado ausente… Por la forma de encriptación que yo tenía en mente para cifrar la contraseña antes de guardarlo en la base de datos. Así, en el código que puede utilizar para crear un usuario. El usuario introduzca su contraseña elegida por la que cifrar antes de guardarlo en la base de datos. En el código de inicio de sesión volvería a cifrar la contraseña introducida y comparar la contraseña cifrada con la que está en la base de datos. Hay muchos ejemplos de cifrado en la red.
InformationsquelleAutor user3765415 | 2014-08-29

1 Comentario

  1. 0

    Tiene algunos espacios adicionales en la línea de

    Query = "select * from user where username= ' " & tbxUsername.Text & "' and password= ' " & tbxPassword.Text & "' "

    que me iba a cambiar a

    Query = String.Format("SELECT * FROM user WHERE username = '{0}' AND password = '{1}'", Me.tbxUsername.Text.Trim(), Me.tbxPassword.Text.Trim())

    Me gustaría utilizar String.Format() para hacerlo más claro, menos posibilidades de pasar por alto los espacios adicionales.

    • Saludos. Me puedes decir donde he dejado los espacios extra? Si puedo quitar los espacios en blanco a continuación, ¿hay alguna desventajas de usar mi formato sobre la tuya? Sólo quiero saber si mi codding es peor. 🙂
    • where username= ' " entre la » y «, y lo mismo en la contraseña.
    • El espacio extra en username = ' {0}' es muy obvio en comparación con where username= ' ". Es una cuestión de preferencia en un caso simple como esta, a pesar de la claridad creo que más que justifica el uso de la Cadena.Formato. Funcionalmente, son los mismos.
    • Por cierto, ¿esto resuelve tu problema?
    • Muchas gracias de verdad. El código funcionó a la perfección y después de la eliminación de espacios adicionales como usted sugiere mi código funcionó demasiado. @Mych mencionado acerca de mi contraseña sin cifrar. No sé cómo hacer que sea cifrada. Ser el camino, Mi problema está resuelto.

Dejar respuesta

Please enter your comment!
Please enter your name here