Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MySQL数据库登录VB.NET_Mysql_Vb.net - Fatal编程技术网

使用MySQL数据库登录VB.NET

使用MySQL数据库登录VB.NET,mysql,vb.net,Mysql,Vb.net,我这里确实有一个恼人的问题,我无法解决这个问题。我的问题是我无法确认我的登录,这是一个逻辑错误,因为我的try-catch块没有“捕获”任何内容,我甚至在数据库打开和DB.Close之间使用了断点,以查看是否有任何问题。以下是一些屏幕: 因此,如果我输入用户Gigel和他的密码123(它是加密的),我会从我的if中得到错误的执行,“外面出了点问题” 错误…,有人吗 试试这个: Private Sub Button1_Click(sender As Object, e As EventArgs

我这里确实有一个恼人的问题,我无法解决这个问题。我的问题是我无法确认我的登录,这是一个逻辑错误,因为我的try-catch块没有“捕获”任何内容,我甚至在数据库打开和DB.Close之间使用了断点,以查看是否有任何问题。以下是一些屏幕:

因此,如果我输入用户Gigel和他的密码123(它是加密的),我会从我的if中得到错误的执行,“外面出了点问题”

错误…,有人吗

试试这个:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Try

    Dim MySQLConnection As New MySqlConnection("Server = localhost;Database = users; Uid=root; Pwd = password ")

    Dim SqlQuery As String = "SELECT COUNT(*) From users1 WHERE username = @Username AND password = MD5(@Password); "

    MySQLConnection.Open()

    Dim Command As New MySqlCommand(SqlQuery, MySQLConnection)

    Command.Parameters.Add(New MySqlParameter("@Username", TextBox1.Text))
    Command.Parameters.Add(New MySqlParameter("@Password", TextBox2.Text))

    If Command.ExecuteScalar() = 1 Then
        MsgBox("Thanks for logging in")            
    Else
        MsgBox("Invalid username or password")
    End If

    MySQLConnection.Close()

Catch ex as Exception

   MsgBox(ex.Message)

End Sub

当您将其作为参数添加时,
HashedPass
为空,因此
Command.ExecuteScalar
将返回
0
我确实更正了它,但有相同的逻辑错误。如果我对散列部分进行注释,并直接将TextBox2.text(我输入密码的文本框)用作参数,它就会工作(通过输入整个加密代码)。我的错误就在散列区域的某个地方,多亏了输入tho,该散列必须是=带有某些内容,在
If
上方放置一个断点,并检查
Command.CommandText
的值。该值是将要执行的SQL语句我认为要执行的SQL语句应该是
SELECT COUNT(*)From users1,其中username=@username和password=MD5(@password)
您可以签出主线程吗?我确实添加了一张新图片,显然我的加密算法与mysql的完全不同。查看phpmyadmin的图片,查看密码。他们完全不同。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Try

    Dim MySQLConnection As New MySqlConnection("Server = localhost;Database = users; Uid=root; Pwd = password ")

    Dim SqlQuery As String = "SELECT COUNT(*) From users1 WHERE username = @Username AND password = MD5(@Password); "

    MySQLConnection.Open()

    Dim Command As New MySqlCommand(SqlQuery, MySQLConnection)

    Command.Parameters.Add(New MySqlParameter("@Username", TextBox1.Text))
    Command.Parameters.Add(New MySqlParameter("@Password", TextBox2.Text))

    If Command.ExecuteScalar() = 1 Then
        MsgBox("Thanks for logging in")            
    Else
        MsgBox("Invalid username or password")
    End If

    MySQLConnection.Close()

Catch ex as Exception

   MsgBox(ex.Message)

End Sub