这是我的数据库:
我试图在我的状态表中添加新行,这里是:我没有收到任何VB错误或mySQL错误,所以我想我缺少在此处添加的重要内容。
你们能帮我吗?提前致谢
Try
Dim SqlQuery As String = "INSERT INTO presence(id_presence,id,hours,date) " & _
"SELECT DISTINCT @Id_presence,@Id,@Hours,@Date FROM presence"
Using con = New MySqlConnection("Server = localhost;Database = accounts; Uid=root; Pwd = password")
Using SQLcmd = New MySqlCommand(SqlQuery, con)
con.Open()
SQLcmd.Parameters.Add(New MySqlParameter("@Id_presence", TextBox1.Text))
SQLcmd.Parameters.Add(New MySqlParameter("@Id", TextBox2.Text))
SQLcmd.Parameters.Add(New MySqlParameter("@Hours", TextBox3.Text))
SQLcmd.Parameters.Add(New MySqlParameter("@Date", TextBox4.Text))
End Using
End Using
Catch ex As Exception
End Try
向表中添加新记录的正确语法应为
Dim SqlQuery As String = "INSERT INTO presence(id_presence,id,hours,date) " & _
"VALUES (@Id_presence,@Id,@Hours,@Date)"
而且,当然,每个命令都应执行,否则只是一小段代码。
创建参数后,您将缺少此行。
SQLcmd.ExecuteNonQuery()
无法确定是否从图像中获取图像,但是如果idpresence是一个AUTOINCREMENT字段,则您不应尝试使用命令和参数设置其值,而应由数据库为您完成。(如果多个用户同时插入记录,则可能会出现重复键问题)
最后,未指定参数的类型,因此它们与基础数据表架构不匹配。您可以使用AddWithValue并将输入的文本框值转换为正确的数据库类型
SQLcmd.Parameters.AddWithValue("@Id_presence", Convert.ToInt32(TextBox1.Text))
SQLcmd.Parameters.AddWithValue("@Id", Convert.ToInt32(TextBox2.Text))
SQLcmd.Parameters.AddWithValue("@Hours", Convert.ToInt32(TextBox3.Text))
SQLcmd.Parameters.AddWithValue("@Date", Convert.ToDateTime(TextBox4.Text))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句