gpt4 book ai didi

mysql - 无法使用vb.net将数据插入Mysql

转载 作者:行者123 更新时间:2023-11-29 07:27:35 25 4
gpt4 key购买 nike

我正在尝试使用 VB 将数据插入 MySQL。

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

最佳答案

试试这个,它也修复了一些其他问题和潜在问题:

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 block 负责处理此问题),并且我倾向于提倡在更高级别上处理异常它们被抛出的地方...尽管在这种情况下您已经处于按钮事件中。我在这里真正建议的是将数据库代码移动到它自己的类中,因此这一切都将位于该类中的单独方法中。然后,您仍然可以在按钮单击事件中使用异常处理程序,并且 Try block 中唯一的事情就是调用该方法。

养成对进入sql查询的数据使用查询参数的习惯也非常重要,以防止sql注入(inject)攻击。您所拥有的尚未受到攻击,但它并没有让人相信它很快就不会受到攻击。

关于mysql - 无法使用vb.net将数据插入Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34003306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com