Mysql 无法使用参数化插入进行处理
我得到异常,列不能为空,未保存到我的数据库 但是如果我使用这个代码,它会起作用Mysql 无法使用参数化插入进行处理,mysql,vb.net,Mysql,Vb.net,我得到异常,列不能为空,未保存到我的数据库 但是如果我使用这个代码,它会起作用 你的桌子看起来像什么?听起来您有另一个字段可能是主键id字段,它需要一个值。如果是这样,请将其设置为自动递增,或为字段传入一个值。firstname和lastname中的“我的数据类型”是一个varcharAre。表中只有这些字段吗?没有其他列?是的,只有Lastname和firstname,varchar。但如果我不使用参数化查询,它就可以工作了。我可能错了,但我认为在使用ODBC时,您不能使用@作为MySQL的参
你的桌子看起来像什么?听起来您有另一个字段可能是主键id字段,它需要一个值。如果是这样,请将其设置为自动递增,或为字段传入一个值。firstname和lastname中的“我的数据类型”是一个varcharAre。表中只有这些字段吗?没有其他列?是的,只有Lastname和firstname,varchar。但如果我不使用参数化查询,它就可以工作了。我可能错了,但我认为在使用ODBC时,您不能使用@作为MySQL的参数前缀。Connector/Net支持它,但我认为您可能需要使用?如果您使用的是ODBC,则应改为使用ODBC。这就引出了一个问题:为什么要使用ODBC而不是Connector/Net?
Private Sub save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles save.Click
con.close()
con.open()
cmd = New Odbc.OdbcCommand("INSERT INTO db.table(firstname,lastname) VALUES(@f1,@f2)", con)
cmd.Parameters.AddWithValue("@f1", textboxfirstname.Text)
cmd.Parameters.AddWithValue("@f2", textboxlastname.Text)
cmd.ExecuteNonQuery()
End Sub
Private Sub save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles save.Click
con.close()
con.open()
cmd = New Odbc.OdbcCommand("INSERT INTO db.table(firstname) VALUES('" & textboxfirstname.Text & "')", con)
cmd.ExecuteNonQuery()
End Sub