VB.NET mySQL插入命令

时间:2014-04-13 09:52:50

标签: mysql vb.net

这是我的DB: enter image description here

我想在我的状态表中添加一个新行,这里是: 我没有得到任何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

2 个答案:

答案 0 :(得分:3)

将新记录添加到表中的正确语法应为

 Dim SqlQuery As String = "INSERT INTO presence(id_presence,id,hours,date) " & _
                          "VALUES (@Id_presence,@Id,@Hours,@Date)"

当然,每个命令都应该被执行,否则它只是一个有用的代码行 创建参数后,您缺少此行。

  SQLcmd.ExecuteNonQuery()

从您的图像中无法确定,但如果idpresence是AUTOINCREMENT字段,那么您不应尝试使用您的命令和参数设置其值,而是让数据库为您执行此操作。 (如果多个用户同时插入记录,则可能出现重复键问题)

最后,你的参数'未指定type,因此它们不匹配基础数据表架构。您可以使用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))

答案 1 :(得分:1)

在结束使用

之前添加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

参考: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2