我正在尝试使用vb.net中的函数来构建一个准备好的语句,以保存到mysql,但是使用mysql的.net连接器提供的示例,我很难让它工作起来。
我的功能是这样的..。
Public Function TestSQLUpdate(ByVal link_id As String, ByRef updatetext As String, ByRef entrytype As String)
Dim conn As New MySqlConnection
Dim cmd As New MySqlCommand
conn.ConnectionString = main.connection_string
Try
conn.Open()
cmd.Connection = conn
cmd.CommandText = "INSERT INTO case_updates VALUES(@lid, @updatext, @entrytype, @user)"
cmd.Prepare()
cmd.Parameters.AddWithValue("@lid", lid)
cmd.Parameters.AddWithValue("@updatetxt", updatetext)
cmd.Parameters.AddWithValue("@entrytype", entrytype)
cmd.Parameters.AddWithValue("@user", main.activeuser)
cmd.ExecuteNonQuery()
Catch ex As MySqlException
MessageBox.Show("Error " & ex.Number & " has occurred: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Function我把这个作为测试运行,但是得到错误:
列计数与第1行的值计数不匹配
我有和字段相同的参数,所以我不知道哪里出错了。
如果这是一个愚蠢的问题,很抱歉;只有当你知道答案时,它们才容易回答!)
发布于 2017-03-06 23:09:03
此错误不是由于参数计数不匹配所提供参数的数量而造成的。
在insert语句中,您没有指定要将值插入哪些列,因此mysql希望您为表中的所有列提供值。case_updates表有超过4列,因此出现了错误消息。要么需要向values()子句中的表中的所有列提供值,要么需要列出要插入的列。
INSERT INTO case_updates(lid, updatetext, entrytype, `user`) ...(假设字段名与参数名称匹配)
https://stackoverflow.com/questions/42636873
复制相似问题