Mysql “我的代码”中不断出现错误(连接已打开)

Mysql “我的代码”中不断出现错误(连接已打开),mysql,vb.net,Mysql,Vb.net,这个错误不断出现!!!MySql.Data.dll中发生类型为“System.InvalidOperationException”的未处理异常 其他信息:连接已打开 Dim cmd As MySqlCommand con.Open() Try cmd = con.CreateCommand() cmd.CommandText = "update animal_sale set @NOAB,@Amount,@Tax

这个错误不断出现!!!MySql.Data.dll中发生类型为“System.InvalidOperationException”的未处理异常

其他信息:连接已打开

  Dim cmd As MySqlCommand
        con.Open()
        Try
            cmd = con.CreateCommand()
            cmd.CommandText = "update animal_sale set @NOAB,@Amount,@Tax,@Total where Species=@Species"
            cmd.Parameters.AddWithValue("@Species", TextBoxSpecies.Text)
            cmd.Parameters.AddWithValue("@NOAB", TextBoxNo.Text)
            cmd.Parameters.AddWithValue("@Amount", TextBoxAmount.Text)
            cmd.Parameters.AddWithValue("@Tax", TextBoxTax.Text)
            cmd.Parameters.AddWithValue("@Total", TextBoxTotal.Text)
            cmd.ExecuteNonQuery()

            load()
        Catch ex As Exception

        End Try

    End Sub

执行查询后,您似乎没有关闭连接。你只有

con.Open()
和之后不关闭连接

cmd.ExecuteNonQuery()

将数据库对象保持在使用它们的方法的本地。然后,您总是知道连接的状态,并可以确保它们已关闭和释放。即使出现错误,使用…End Using块也可以为您执行此操作。在这段代码中,连接和命令都被一个Using块覆盖。注意第一行末尾的逗号

您可以将连接字符串直接传递给连接的构造函数

您可以将命令文本和连接直接传递给命令的构造函数

更新sql命令不正确。您需要告诉服务器要更新哪些字段。我不得不猜测这些田地的名字。检查数据库中是否有正确的名称,并相应地调整代码

请不要使用.AddWithValue。看见 和 还有一个: 这是另一个

我不得不猜测.Add方法的数据类型和字段大小。检查数据库中的正确值并调整代码

我在数据库代码中将文本框字符串转换为正确的数据类型,但通常这些值在到达此代码之前会被解析和转换

Private Sub UpdateSale()
    Using con As New MySqlConnection("Your connection string"),
            cmd As New MySqlCommand("update animal_sale set nonab = @NOAB, amount = @Amount, tax = @Tax, total = @Total where species = @Species;", con)
        cmd.Parameters.Add("@Species", MySqlDbType.VarChar, 100).Value = TextBoxSpecies.Text
        cmd.Parameters.Add("@NOAB", MySqlDbType.Int32).Value = CInt(TextBoxNo.Text)
        cmd.Parameters.Add("@Amount", MySqlDbType.Decimal).Value = CDec(TextBoxAmount.Text)
        cmd.Parameters.Add("@Tax", MySqlDbType.Decimal).Value = CDec(TextBoxTax.Text)
        cmd.Parameters.Add("@Total", MySqlDbType.Decimal).Value = CDec(TextBoxTotal.Text)
        con.Open
        cmd.ExecuteNonQuery()
    End Using
End Sub

哪个错误?请共享完整准确的错误消息,以及您的调试尝试