Mysql 无法将值插入数据库
让我的VB.net应用程序在我的Mysql 无法将值插入数据库,mysql,vb.net,Mysql,Vb.net,让我的VB.net应用程序在我的MySQL中插入值时遇到问题。我可以连接到数据库,但不能插入值。我已经下载了DLL并将其作为参考附件。我还编写了查询,并将其直接插入数据库中,它可以正常工作。我从这个网站上找到的例子中尝试了多种编码方法,但我仍然无法让它工作。这是我正在努力工作的代码: Try MysqlConn = New MySqlConnection("server=localhost;userid=User;password=******;database=Targets") Mysq
MySQL
中插入值时遇到问题。我可以连接到数据库,但不能插入值。我已经下载了DLL并将其作为参考附件。我还编写了查询,并将其直接插入数据库中,它可以正常工作。我从这个网站上找到的例子中尝试了多种编码方法,但我仍然无法让它工作。这是我正在努力工作的代码:
Try
MysqlConn = New MySqlConnection("server=localhost;userid=User;password=******;database=Targets")
MysqlConn.Open()
Dim sqlCommand As New MySqlCommand
sqlCommand.CommandType = CommandType.Text
sqlCommand.CommandText = "insert into Victims(UserName, Machine, IP) values('" + strUser + "','" + strMachine + "','" + strIPAddress + "')"
Dim strRD As MySqlDataReader
strRD = sqlCommand.ExecuteReader()
MysqlConn.Close()
MessageBox.Show("connected")
Catch ex As MySqlException
MessageBox.Show("error")
我已经在代码前面声明了查询语句中使用的变量。感谢您提供的帮助。您可以试试这个
Try
MysqlConn = New MySqlConnection("server=localhost;userid=User;password=******;database=Targets")
MysqlConn.Open()
Dim query as String
query = "INSERT INTO Victims(UserName, Machine, IP) VALUES('" + strUser + "','" + strMachine + "','" + strIPAddress + "')"
Dim cmd As MySqlCommand
cmd = New MySqlCommand(query,MysqlConn)
cmd.ExecuteNonQuery()
MysqlConn.Close()
MessageBox.Show("connected")
Catch ex作为MySqlException
MessageBox.Show(“错误”)
结束尝试您可以尝试此操作
Try
MysqlConn = New MySqlConnection("server=localhost;userid=User;password=******;database=Targets")
MysqlConn.Open()
Dim query as String
query = "INSERT INTO Victims(UserName, Machine, IP) VALUES('" + strUser + "','" + strMachine + "','" + strIPAddress + "')"
Dim cmd As MySqlCommand
cmd = New MySqlCommand(query,MysqlConn)
cmd.ExecuteNonQuery()
MysqlConn.Close()
MessageBox.Show("connected")
Catch ex作为MySqlException
MessageBox.Show(“错误”)
结束Try将公共函数InsertVal()作为布尔值
Dim iReturn As Boolean
Using MysqlConn As New MySqlConnection(connectionString)
Using sqlCommand As New MySqlCommand()
With sqlCommand
.CommandText = "INSERT INTO Victims (UserName, Machine, IP) VALUES(@User,@Machine,@IP)"
.Connection = MysqlConn
.CommandType = CommandType.Text
.Parameters.AddWithValue("@User", lblDisplayUser.Text)
.Parameters.AddWithValue("@Machine", lblDisplayMachine.Text)
.Parameters.AddWithValue("@IP", lblDisplayIP.Text)
End With
Try
MysqlConn.Open()
sqlCommand.ExecuteNonQuery()
iReturn = True
Catch ex As MySqlException
MsgBox(ex.Message.ToString)
iReturn = False
Finally
MysqlConn.Close()
End Try
End Using
End Using
Return InsertVal
这就是对我有效的解决方案。我不得不把它改成一个函数,然后处理详细的错误消息。谢谢大家的帮助。布尔形式的公共函数InsertVal()
Dim iReturn As Boolean
Using MysqlConn As New MySqlConnection(connectionString)
Using sqlCommand As New MySqlCommand()
With sqlCommand
.CommandText = "INSERT INTO Victims (UserName, Machine, IP) VALUES(@User,@Machine,@IP)"
.Connection = MysqlConn
.CommandType = CommandType.Text
.Parameters.AddWithValue("@User", lblDisplayUser.Text)
.Parameters.AddWithValue("@Machine", lblDisplayMachine.Text)
.Parameters.AddWithValue("@IP", lblDisplayIP.Text)
End With
Try
MysqlConn.Open()
sqlCommand.ExecuteNonQuery()
iReturn = True
Catch ex As MySqlException
MsgBox(ex.Message.ToString)
iReturn = False
Finally
MysqlConn.Close()
End Try
End Using
End Using
Return InsertVal
这就是对我有效的解决方案。我不得不把它改成一个函数,然后处理详细的错误消息。谢谢大家的帮助。您是否收到任何错误消息?另外,您是否可以使用
ExecuteNonQuery()
替代此选项查看此选项(向下滚动以获得有效的解决方案)。ExecuteReader用于返回多行的结果。ExecuteOnQuery用于不返回结果的查询。您是否收到任何错误消息?另外,您是否可以使用ExecuteOnQuery()
代替此选项查看此选项(向下滚动以获得有效的解决方案)。ExecuteReader用于返回多行结果。ExecuteOnQuery用于不返回结果的查询。您是否收到任何错误消息?另外,您是否可以使用ExecuteOnQuery()
代替此选项查看此选项(向下滚动以获得有效的解决方案)。ExecuteReader用于返回多行结果。ExecuteOnQuery用于不会返回结果的查询。感谢您的帮助。我使用了你的代码,它做的和以前一样。我可以连接应用程序,但不能插入值。我看到它是通过在mysql中运行“showProcessList;”连接的,它显示了一个新的睡眠连接。我猜这意味着代码没有到达代码的MysqlConn.Close()部分。我在尝试插入值时收到错误消息框。错误消息是什么?像无效的字段值之类的?谢谢你的帮助。我使用了你的代码,它做的和以前一样。我可以连接应用程序,但不能插入值。我看到它是通过在mysql中运行“showProcessList;”连接的,它显示了一个新的睡眠连接。我猜这意味着代码没有到达代码的MysqlConn.Close()部分。我在尝试插入值时收到错误消息框。错误消息是什么?像无效的字段值之类的?谢谢你的帮助。我使用了你的代码,它做的和以前一样。我可以连接应用程序,但不能插入值。我看到它是通过在mysql中运行“showProcessList;”连接的,它显示了一个新的睡眠连接。我猜这意味着代码没有到达代码的MysqlConn.Close()部分。我在尝试插入值时收到错误消息框。错误消息是什么?比如无效的字段值或其他什么?为了更好地澄清这一点,请记住,当使用字符串而不是参数时,查询字符串的字符都会被使用。例如,从myDB中选择*其中用户名为“Larry O'Hare”,将通过解析额外的“字符”导致语句出现问题。。。使用参数解决了这个问题,同时帮助阻止黑客使用SQL注入之类的东西。为了更好地澄清这一点,请记住,当使用字符串而不是参数时,查询字符串的字符都会被使用。例如,从myDB中选择*其中用户名为“Larry O'Hare”,将通过解析额外的“字符”导致语句出现问题。。。使用参数解决了这个问题,同时帮助阻止黑客使用SQL注入之类的东西。为了更好地澄清这一点,请记住,当使用字符串而不是参数时,查询字符串的字符都会被使用。例如,从myDB中选择*其中用户名为“Larry O'Hare”,将通过解析额外的“字符”导致语句出现问题。。。使用参数解决了这个问题,同时帮助阻止黑客使用SQL注入之类的东西。