gpt4 book ai didi

mysql - 无法使用vb.net将路径文件地址插入到mysql

转载 作者:行者123 更新时间:2023-11-29 00:02:21 25 4
gpt4 key购买 nike

我在将此文本插入 vb.net 中的 mysql 时遇到问题

C:\Users\Riski\Documents\Visual Studio 2012\Projects\Remainder\Remainder\images\activ\

这是我的插入源

 Try
Dim tbimg As String
tbimg = tbimgpath.text
'Prepare Connection and Query
dbconn = New MySqlConnection("Server=localhost;Database=team;Uid=root;Pwd=")

'OPEN THE DB AND KICKOFF THE QUERY
dbconn.Open()
DS = New DataSet
DA = New MySqlDataAdapter("INSERT INTO tb_team_user (id_team_user,user_ip,user_team,user_image_path) values (null,'" & lip.Text & "','" & tbteam.Text & "','" & tbimg & "')", dbconn)
DA.Fill(DS, "tb_info_activity")

'DONE CLOSE THE DB
dbconn.Close()

Application.Restart()

Catch ex As Exception
MsgBox("cannot connect to database!" & vbCrLf & vbCrLf & ex.Message)
End Try

如果我写的时候没有符号 '\' 和 ':',插入可以正常工作,但是如果我用符号写,插入会给我警告,只是“检查对应的手册”

如何解决这个问题?

谢谢

最佳答案

不要使用字符串连接来构建您的 sql 查询。否则你将面临 sql 注入(inject)和其他类似问题。反斜杠介绍 escape characters\r 表示回车。所以只需使用具有正确类型的 sql 参数:

Using dbconn = New MySqlConnection("connectionstring")
Dim insertSql = "INSERT INTO tb_team_user (id_team_user,user_ip,user_team,user_image_path)" & _
"VALUES (null,@user_ip,@user_team,@user_image_path)"
Using da As New MySqlDataAdapter()
da.InsertCommand = New MySqlCommand(insertSql, dbconn)
da.InsertCommand.Parameters.Add("@user_ip", MySqlDbType.Int32).Value = Int32.Parse(lip.Text)
da.InsertCommand.Parameters.Add("@user_team", MySqlDbType.VarChar).Value = tbteam.Text
da.InsertCommand.Parameters.Add("@user_image_path", MySqlDbType.VarChar).Value = tbimg.Text
' .. '
End Using
End Using

除此之外,为什么要为 DataAdaper.Fill 使用 INSERT-sql?您需要一个 Select

所以也许您想改用 MySqlCommand.ExecuteNonQuery:

Using dbconn = New MySqlConnection("connectionstring")
Dim insertSql = "INSERT INTO tb_team_user (id_team_user,user_ip,user_team,user_image_path)" & _
"VALUES (null,@user_ip,@user_team,@user_image_path)"
Using cmd As New MySqlCommand(insertSql, dbconn)
cmd.Parameters.Add("@user_ip", MySqlDbType.Int32).Value = Int32.Parse(lip.Text)
cmd.Parameters.Add("@user_team", MySqlDbType.VarChar).Value = tbteam.Text
cmd.Parameters.Add("@user_image_path", MySqlDbType.VarChar).Value = tbimg.Text
dbconn.Open()
Dim insertedCount As Int32 = cmd.ExecuteNonQuery()
End Using
End Using

关于mysql - 无法使用vb.net将路径文件地址插入到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29206135/

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