如何解决 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是如何使用ADO让存储过程返回数据表中的值呢?求解!