Buenas noches:
Llevo durante el día de hoy intentando exportar un sistema de identificación de usuarios de SQL a MySQL.
En SQL me funciona perfectamente pero en MySQL siempre me devuelve que o bien el usuario o la contraseña son incorrectos.
Código:
Imports MySql.Data.MySqlClient
Public Class LoginForm3
Private veces As Integer = 0
Private Const NumeroIntentos As Integer = 3
Private cadenaCnn As String = "server=pepito.com;user id=pepito;password=manolito;database=bdd"
Private Function comprobarUsuario( _
ByVal nombre As String, _
ByVal clave As String) As Boolean
Dim cnn As MySqlConnection = Nothing
'
Try
cnn = New MySqlConnection(cadenaCnn)
cnn.Open()
Dim sel As New System.Text.StringBuilder
sel.Append("SELECT COUNT(*) FROM administradores ")
sel.Append("WHERE Nombre = @Nombre AND Clave = @Clave")
Dim cmd As New MySqlCommand(sel.ToString, cnn)
cmd.Parameters.Add("@Nombre", MySqlDbType.VarChar, 50)
cmd.Parameters.Add("@Clave", MySqlDbType.VarChar, 45)
cmd.Parameters("@Nombre").Value = nombre
cmd.Parameters("@Clave").Value = clave
Dim t As Integer = CInt(cmd.ExecuteScalar())
cnn.Close()
If t = 0 Then
Return False
End If
Catch ex As Exception
MessageBox.Show("ERROR al conectar a la base de datos: " & vbCrLf & _
ex.Message, "Comprobar usuario", MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
Return False
Finally
If Not cnn Is Nothing Then
cnn.Dispose()
End If
End Try
Return True
End Function
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
If comprobarUsuario(Me.UsernameTextBox.Text, Me.PasswordTextBox.Text) Then
Form1.Show()
Else
' Permitir varios intentos
veces = veces + 1
If veces < NumeroIntentos Then
Label1.Text = "Quedan " & (NumeroIntentos - veces) & " intentos"
Exit Sub
End If
Me.DialogResult = DialogResult.No
End If
Hide()
End Sub
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
Me.Close()
End Sub
End Class
Yo creo que el fallo debe estar aquí:
Código:
sel.Append("SELECT COUNT(*) FROM administradores ")
sel.Append("WHERE Nombre = @Nombre AND Clave = @Clave")
Un saludo y gracias por vuestros consejos