VB.NET mySQL insert命令
这是我的数据库: 我正在尝试向我的状态表中添加新行,如下所示: 我没有得到任何VB错误或mySQL错误,所以我想我遗漏了一些重要的东西 你们能帮帮我吗?提前谢谢VB.NET mySQL insert命令,mysql,vb.net,Mysql,Vb.net,这是我的数据库: 我正在尝试向我的状态表中添加新行,如下所示: 我没有得到任何VB错误或mySQL错误,所以我想我遗漏了一些重要的东西 你们能帮帮我吗?提前谢谢 Try Dim SqlQuery As String = "INSERT INTO presence(id_presence,id,hours,date) " & _ "SELECT DISTINCT @Id_presence,@Id,@Hours,@Date FROM prese
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
添加
SQLcmd.ExecuteNonQuery()代码>在结束前使用
范例
Public Sub CreateCommand(ByVal queryString As String, _
ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
command.Connection.Open()
command.ExecuteNonQuery()
End Using
End Sub
参考:
添加SQLcmd.ExecuteNonQuery()代码>在结束前使用
范例
Public Sub CreateCommand(ByVal queryString As String, _
ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
command.Connection.Open()
command.ExecuteNonQuery()
End Using
End Sub
参考:
向表中添加新记录的正确语法应为
Dim SqlQuery As String = "INSERT INTO presence(id_presence,id,hours,date) " & _
"VALUES (@Id_presence,@Id,@Hours,@Date)"
当然,每个命令都应该执行,否则它只是一行无用的代码。
创建参数后,您将缺少这一行
SQLcmd.ExecuteNonQuery()
从您的图像无法确定,但如果idpresence是一个自动增量字段,则不应尝试使用命令和参数设置其值,而是让数据库为您设置。(如果多个用户同时插入记录,可能会出现重复密钥问题)
最后,没有指定参数的类型,因此它们与基础datatable架构不匹配。您可以使用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))
向表中添加新记录的正确语法应为
Dim SqlQuery As String = "INSERT INTO presence(id_presence,id,hours,date) " & _
"VALUES (@Id_presence,@Id,@Hours,@Date)"
当然,每个命令都应该执行,否则它只是一行无用的代码。
创建参数后,您将缺少这一行
SQLcmd.ExecuteNonQuery()
从您的图像无法确定,但如果idpresence是一个自动增量字段,则不应尝试使用命令和参数设置其值,而是让数据库为您设置。(如果多个用户同时插入记录,可能会出现重复密钥问题)
最后,没有指定参数的类型,因此它们与基础datatable架构不匹配。您可以使用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))
你想在这里复制一条现有记录吗?你想在这里复制一条现有记录吗?事实上,我的id_存在是自动递增的。非常感谢,你是vb和mySQL的上帝。事实上,我的id_存在是自动递增的。非常感谢,你是vb&mySQL的上帝。