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