不能插入到 Mysql 使用 vb.net 的数据

标签: Vb.net MySQL .Net
发布时间: 2017/4/8 19:09:39
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我试图将数据插入到 MySQL 使用 vb。

enter image description here

当用于这些文本框插入数据添加数据,但我不想将文本输入到文本框,但只是通过按下按钮 (更新) 直接添加的基本信息。它给一个语法错误,请检查 MySQL 版本。它它查询错误吗?我不知道如何做到这一点。请帮助。这里是我的代码。

 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Mysqlconn = New MySqlConnection

        Mysqlconn.ConnectionString = "server=localhost;userid=root;port=85;password=*****;database=data"
        Dim reader As MySqlDataReader


        Try
            Mysqlconn.Open()
            Dim query As String
            query = "INSERT INTO 'data'.'etable'('eid','Name','Surname','Age')values('7','Andy','Roddick','35')"
            command = New MySqlCommand(query, Mysqlconn)
            reader = command.ExecuteReader


            MessageBox.Show("Data Saved")

            Mysqlconn.Close()

        Catch ex As MySqlException
            MessageBox.Show(ex.Message)
            Mysqlconn.Dispose()

        End Try

    End Sub
End Class

解决方法 1:

试试这个,它修复了一些其他问题及潜在的问题︰

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

    Dim query As String = "INSERT INTO `data`.`etable`(eid,Name,Surname,Age)" & _
                         " VALUES (@eid, @Name, @Surname, @Age)"
    Using con As New MySqlConnection("server=localhost;userid=DONT_USE_ROOT!;port=85;password=*****;database=data"), _
          cmd As New MySqlCommand(query, con)

        'Guessing at parameter types/lengths here.
        cmd.Parameters.Add("@eid", MySqlDbType.Int32).Value = 7
        cmd.Parameters.Add("@Name", MySqlDbType.VarChar, 20).Value = "Andy"
        cmd.Parameters.Add("@Surname", MySqlDbType.VarChar, 25).Value =  "Roddick"
        cmd.Parameters.Add("@Age", MySqlDbType.Int32).Value = 35

        conn.Open()
        If cmd.ExecuteNonQuery() > 0 Then MessageBox.Show("Data Saved")

    End Using   
End Sub

请注意我也删除了异常处理程序。Dispose()在你旧的处理程序中调用现在不再需要 ( Using 块照顾这),和我倾向于主张处理异常在较高级别比在哪里他们引发虽然在这种情况下你已经在按钮事件......。我在这里推荐是数据库将代码移动到它自己的类,所以这一切都在一个单独的方法在该类中。然后你还可以拥有你的异常处理程序在这里按钮中单击事件和唯一永恒的东西 Try 块将调用该方法。

它也是在为进入 sql 查询,以防止 sql 注入攻击的数据使用查询参数的习惯很重要。你有什么不容易受到攻击,但它没借给它很快就不会受到任何信心。

赞助商