如何解决 vb.net 应用程序中的 mysql 定义错误?

Posted

技术标签:

【中文标题】如何解决 vb.net 应用程序中的 mysql 定义错误?【英文标题】:how to solve mysql define error in vb.net app? 【发布时间】:2020-03-02 16:06:43 【问题描述】:

我有这段代码

 Dim query As String = "INSERT INTO person(name) VALUES (@name);"
 Try
        conn.Open()
        Dim cmd As mysqlCommand = New MySqlCommand(query, conn)
        If String.IsNullOrEmpty(name.Text) Or String.IsNullOrWhiteSpace(name.Text) Then
            cmd.Parameters.AddWithValue("@name", " ")
        Else
            cmd.Parameters.AddWithValue("@name", name.Text)
        End If
        cmd.ExecuteNonQuery()
        Catch ex As MySqlException
            MsgBox(ex.ToString)
End Try

当我运行代码时,我得到了这个异常:

MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command execution. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Parameter '@name' must be defined.

如何解决?

【问题讨论】:

用 cmd.Parameters.Add() 试试吧 【参考方案1】:

这样做:

Dim query As String = "INSERT INTO person(name) VALUES (@name);"
 Try
        conn.Open()
        Dim cmd As MySqlCommand = New MySqlCommand()
         cmd.CommandText = query;
        If String.IsNullOrEmpty(name.Text) Or String.IsNullOrWhiteSpace(name.Text) Then
            cmd.Parameters.AddWithValue("@name", " ")
        Else
            cmd.Parameters.AddWithValue("@name", name.Text)
        End If

        cmd.Connection = conn;
        cmd.ExecuteNonQuery()
        Catch ex As MySqlException
            MsgBox(ex.ToString)
End Try

【讨论】:

【参考方案2】:

解决了只需将其添加到连接字符串:

Allow User Variables=True

【讨论】:

以上是关于如何解决 vb.net 应用程序中的 mysql 定义错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vb.net 中的 mysql 中按分段值查询 123-456-789?

如何解决 vb.net 中的这个 SQL 语法错误?

如何使用 VB.Net 自定义 Excel

VB.NET是如何使用ADO让存储过程返回数据表中的值呢?求解!

如何将 vb.net 连接到 ONLINE MySQL 数据库?

如何解决 VB.NET 1.1 应用程序的性能下降?