2017-04-11 106 views
1

我有這個代碼在mysql中查找。VB NET - 查詢Mysql - 在哪裏

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 

但我想,壞像C:\my pic\myfile.jpg(TextBox5.Text)和MySQL不要發現了它。但是,如果我嘗試像C:\\my pic\\myfile.jpg這沒關係。我如何在查詢中有\\(雙斜線)?

感謝您的幫助..........

+0

你問你如何以編程方式添加/如果只有1 /? – codeMonger123

+2

而不是從未經檢查的文本框輸入創建您的查詢,你應該使用參數...否則[媽媽會打你的應用程序](https://xkcd.com/327/)。至於你的問題:只要'TextBox5.Text.Replace(「\\」,「\\\\」)'應該做的伎倆。 – Filburt

+0

謝謝Filburt ....我在幾個小時內嘗試...... – Jamyz

回答

2

嘗試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

謝謝alls ...工作正常...... – Jamyz

+0

很高興幫助解決了這個問題。 @Filburt謝謝你的幫助。 –