我的vb.net代码应该连接到我的数据库。它成功完成了此操作,直到我添加了一个查询来检查用户名和密码是否存在。添加此项后,用户将被拒绝访问,同时仍使用相同的密码。可能是什么原因造成的?代码:
MysqlConn = New MySqlConnection()
MysqlConn.ConnectionString = "server=;" _
& "user id=;" _
& "password=;" _
& "database="
Try
MysqlConn.Open()
Using cmd As New MySqlCommand
cmd.CommandText = "SELECT COUNT(*) From tableUser WHERE Username=" & TextBox1.Text & " AND Password=" & TextBox2.Text
cmd.CommandType = CommandType.Text
cmd.Connection = MysqlConn
result = cmd.ExecuteScalar
End Using
MysqlConn.Close()
If (result < 1) Then
MessageBox.Show("Please make sure you have typed valid credentials!")
ElseIf result = 1 Then
Dim form As New Form2
form.Show()
Me.Close()
End If
Catch myerror As MySqlException
MessageBox.Show("Connection to the database has been lost. Please try again later.")
Finally
MysqlConn.Dispose()
End Try
答案 0 :(得分:0)
这是一些代码,我只是写了它,希望它有所帮助,只需根据您的需要进行更改。
Private Sub login()
conn = New MySqlConnection
con.ConnectionString =
"server=localhost;userid=root;password=1234;database=batabase;port=3307"
Dim READER As MySqlDataReader
If TextBox1.Text = "" Then
MessageBox.Show("Please enter usename ! ", "Enter username")
Exit Sub
End If
If TextBox2.Text = "" Then
MessageBox.Show("Please enter password", "Enter password")
Exit Sub
End If
Try
conn.Open()
Dim Query As String
Query = "select * from db.users where user='" & TextBox1.Text & "' and password='" & TextBox2.Text & "' "
COMMAND = New MySqlCommand(Query, conn)
READER = COMMAND.ExecuteReader
Dim count As Integer
count = 0
While READER.Read
count = count + 1
End While
If count = 1 Then
Form.Show()
Me.Hide()
ElseIf count > 1 Then
MessageBox.Show("The username is already in use!")
Else
MsgBox("Error , please try again ", MsgBoxStyle.Critical)
End If
conn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
conn.Dispose()
End Try
End Sub
根据需要更改数据库名称用户名,它将起作用!
只需在表单上的登录按钮中添加login()! 或者在没有私人子登录()
的情况下在您的按钮上输入此代码