【发布时间】:2021-08-02 17:17:34
【问题描述】:
Imports MySql.Data.MySqlClient
Public Class Form1
Dim str As String = "server=127.0.0.1; uid=root; pwd=''; database=dbparkingsystem;"
Dim con As New MySqlConnection(str)
Dim cmd As MySqlCommand
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
con.Open()
Try
cmd = con.CreateCommand()
cmd.CommandText = "update profile FirstName=@fName, MiddleName=@mName, LastName=@lName, Position=@pos where EmployeeID=@empID"
cmd.Parameters.AddWithValue("@empID", TextBox1.Text)
cmd.Parameters.AddWithValue("@fName", TextBox2.Text)
cmd.Parameters.AddWithValue("@mName", TextBox3.Text)
cmd.Parameters.AddWithValue("@lName", TextBox4.Text)
cmd.Parameters.AddWithValue("@pos", TextBox5.Text)
cmd.ExecuteNonQuery()
load()
Catch ex As Exception
End Try
End Sub
我的服务器连接很好,但我的代码的唯一问题是我无法更新 DataGridView1 中的项目并给出错误
System.InvalidOperationException: '连接已经打开。'
错误发生在con.Open()中
【问题讨论】:
-
问题似乎很明显:您在连接对象上调用
Open并且收到一条错误消息,告诉您连接已经打开。那里的奥秘在哪里?您应该完全摆脱类级别的连接和命令变量。只需在您使用它们的地方创建它们并将它们分配给局部变量。使用Using语句创建它们,并保证在块结束时关闭连接。