我得到一个错误,在这个登录表,我已经创建了这是“连接必须是有效的和开放的,有人可以帮助我,这是代码。我无法理解这个错误是什么,我需要你的帮助。
Imports MySql.Data.MySqlClient
Public Class LoginForm1
Dim Username As String
Dim Password As String
Public StudentName As String
'MySql
Dim connection As New MySqlConnection("Server=server;User ID=id;Password=pass;Database=data;SSLMode=None")
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Username = UsernameTextBox.Text
Password = PasswordTextBox.Text
StudentName = NameTextBox.Text
Dim command As New MySqlCommand("SELECT `Username`, `Password`, `FirstName` FROM `people` WHERE `Username` = @username AND `Password` = @password And `FirstName` = @name", connection)
command.Parameters.Add("@username", MySqlDbType.VarChar).Value = Username
command.Parameters.Add("@password", MySqlDbType.VarChar).Value = Password
command.Parameters.Add("@name", MySqlDbType.VarChar).Value = StudentName
Dim adapter As New MySqlDataAdapter(command)
Dim table As New DataTable()
Dim reader As MySqlDataReader = command.ExecuteReader
adapter.Fill(table)
If table.Rows.Count = 0 Then
MessageBox.Show("Invalid Username Or Password", "Invalid Login", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("Logged In", "Logged in Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information)
MainMenuForm.Show()
Me.Close()
End If
End Sub
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
Me.Close()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim webAddress As String = "http://windowsadvancedstudy.com"
Process.Start(webAddress)
End Sub
End Class
2条答案
按热度按时间qncylg1j1#
尝试在使用前打开连接。
使用一个“using”块,这样就可以正确地处理它。
另外,最好不要将凭据存储在代码中,而是使用配置文件。
2ekbmq322#
如果正在使用,则不需要声明reader
adapter.Fill
. 删除此行:正是上面的行引发了异常。因为
reader
需要打开连接。并添加行: