2017-04-11 7 views
1

J'ai ce code pour trouver dans mysql.VB NET - Requête Mysql - où est

Try 
    MysqlConn.Close() 
    MysqlConn.Open() 
    Dim Query As String 
    Query = "select id from foto where path = '" & TextBox5.Text & "'" 
    COMMAND = New MySqlCommand(Query, MysqlConn) 
    READER = COMMAND.ExecuteReader 
    While READER.Read 
     Dim sName = READER.GetString("id") 
     TextBox6.Text = sName 
    End While 
Catch ex As Exception 
    MessageBox.Show(ex.Message) 
Finally 
    MysqlConn.Dispose() 
End Try 

Mais le mauvais ce que je veux est comme C:\my pic\myfile.jpg (TextBox5.Text) et Do not mysql trouvé. Mais si j'essaie comme C:\\my pic\\myfile.jpg c'est ok. Comment puis-je avoir un \\ (double barre oblique) dans ma requête? méthode

Merci pour l'aide ..........

+0

demandez-vous comment ajouter par programme un/si seulement 1 /? – codeMonger123

+2

Au lieu de créer votre requête à partir de l'entrée TextBox non cochée, vous devez utiliser un paramètre ... ou bien [Les mamans vont pwn votre application] (https://xkcd.com/327/). En ce qui concerne votre problème: Just TextBox5.Text.Replace ("\\", "\\\\") 'devrait faire l'affaire. – Filburt

+0

Merci Filburt .... J'essaie dans quelques heures ... – Jamyz

Répondre

2

Essayez le MySql.Data.MySqlClient.MySqlHelper.EscapeString().

Try 
    MysqlConn.Close() 
    MysqlConn.Open() 
    Dim Query As String 
    Query = "select id from foto where path = @PATH" 
    COMMAND = New MySqlCommand(Query, MysqlConn) 
    COMMAND.AddWithValue("@PATH",MySql.Data.MySqlClient.MySqlHelper.EscapeString(Textbox5.Text)) 
    READER = COMMAND.ExecuteReader 
    While READER.Read 
     Dim sName = READER.GetString("id") 
     TextBox6.Text = sName 
    End While 
Catch ex As Exception 
    MessageBox.Show(ex.Message) 
Finally 
    MysqlConn.Dispose() 
End Try 
+1

Merci à tous ... Bon travail ...... – Jamyz

+0

content que cela ait aidé à résoudre le problème. @Filburt merci pour l'aide aussi. –