在我的vb.net查询到Mysql后取消反斜杠

在我的vb.net查询到Mysql后取消反斜杠,mysql,sql,vb.net,Mysql,Sql,Vb.net,我遇到了一些问题,当我从我的vb.net程序向我的mysql数据库进行查询时,数据会被发送,但它缺少一些东西,让我解释一下 我的查询非常简单,我正在向我的数据库发送一个文件路径,这样我就可以让一个php网站获取数据并与数据库中的数据建立链接,但是当我发送数据时,结果如下所示 \server_pathappsInst_pcLicences_ProceduresDivers estCheck_list.doc 应该是什么样子 \\server_path\apps\Inst_p

我遇到了一些问题,当我从我的vb.net程序向我的mysql数据库进行查询时,数据会被发送,但它缺少一些东西,让我解释一下

我的查询非常简单,我正在向我的数据库发送一个文件路径,这样我就可以让一个php网站获取数据并与数据库中的数据建立链接,但是当我发送数据时,结果如下所示

    \server_pathappsInst_pcLicences_ProceduresDivers    estCheck_list.doc
应该是什么样子

    \\server_path\apps\Inst_pc\Licences_Procedures\Divers\test\Check_list.doc
我不知道是我的代码不好还是我在mysql服务器上的配置不好请帮助

这是我的密码

    'Construct the sql command string 
        cmdString = "INSERT into procedures(Nom, Lien_Nom, Commentaires) VALUES('" & filenameOnly_no_space_no_accent & "', '" & str_Lien_Nom_Procedure & "', '" & str_commentaires_Procedure & "')"

        ' Create a mysql command 
        Dim cmd As New MySql.Data.MySqlClient.MySqlCommand(cmdString, conn)

        Try
            conn.Open()
            cmd.ExecuteNonQuery()
            conn.Close()
        Catch ex As MySqlException
            MsgBox("Error uppdating invoice: " & ex.Message)
        Finally
            conn.Dispose()
        End Try

很抱歉,我接到一个电话,可以继续我的评论,下面是剩下的:X

好吧,我想这是可行的,但我的程序从来没有使用过相同的路径,因为在服务器上上传文件时,所以这次我想上传的文档就是这个路径

      \\Fsque01.sguc.ad\apps\Inst_pc\Licences_Procedures\Divers\test\Check_list.doc 
但下一次它将是其他东西,所以我不能硬编码路径,我正在寻找更多的SQL查询,我可能不知道,因为我已经考虑过搜索我的字符串,如果它找到一个反斜杠,它会添加另一个,但我觉得这不是一个好的方式来脚本整个事情


无论如何,非常感谢您的帮助

在构造insert SQL时,请使用双反斜杠而不是单反斜杠

,因为它没有转义反斜杠。例如:

INSERT into procedures(Nom, Lien_Nom, Commentaires) VALUES('\\server_path\apps\Inst_pc\Licences_Procedures\Divers\test\Check_list.doc
反斜杠需要像这样转义:

INSERT into procedures(Nom, Lien_Nom, Commentaires) VALUES('\\\\server_path\\apps\\Inst_pc\\Licences_Procedures\\Divers\\test\\Check_list.doc
您可以使用以下方法来完成此操作(不确定VB.NET):

您还应该研究参数化查询,它可以保护您免受一些SQL注入攻击,并且与缝合在一起的SQL相比,更易于编写和维护(这没有经过测试,我也不熟悉MySQL参数化查询):


这是基于我在的结尾处发现的内容。

在应该转义原始值时插入原始值。哇,谢谢,我是用逃逸的方法得到的。我会把我的代码贴出来,供将来参考和其他人使用
filenameOnly_no_space_no_accent = filenameOnly_no_space_no_accent.Replace("\\", "\\\\")
cmdString = "INSERT into procedures(Nom, Lien_Nom, Commentaires) VALUES(?nom, ?lien_nom, ?commentaires)"
Dim cmd As New MySql.Data.MySqlClient.MySqlCommand(cmdString, conn)
cmd.Parameters.Add("?nom", filenameOnly_no_space_no_accent.Replace("\\", "\\\\"))
cmd.Parameters.Add("?lien_nom", str_Lien_Nom_Procedure)
cmd.Parameters.Add("?commentaires", str_commentaires_Procedure)
   cmdString = "INSERT into procedures(Nom, Lien_Nom, Commentaires) VALUES(?nom,?Lien_Nom,?Commentaires)"

        ' Create a mysql command 
        Dim cmd As New MySqlCommand(cmdString, conn)
        cmd.Parameters.AddWithValue("?nom", filenameOnly_no_space_no_accent)
        cmd.Parameters.AddWithValue("?Lien_Nom", str_Lien_Nom_Procedure)
        cmd.Parameters.AddWithValue("?Commentaires", str_commentaires_Procedure)


        Try
            conn.Open()
            cmd.ExecuteNonQuery()
            conn.Close()
        Catch ex As MySqlException
            MsgBox("Error uppdating invoice: " & ex.Message)
        Finally
            conn.Dispose()
        End Try