我已經使用參數化查詢並沒有問題,但是今天我遇到了一個我無法調試的錯誤。 這是我工作的查詢帶有參數不起作用的Vb 2015查詢
cmd.CommandText = "select idcliente, ragsociale from Clienti where idcliente =" & strName & " or codiceamministrazione='" & strName & "' or piva='" & strName & "' or codfisc='" & strName & "'"
相同,但參數,而不是基於內部ID或商業工作
cmd.CommandText = "select idcliente, ragsociale from Clienti where idcliente = @Cliente or [email protected] or [email protected] or [email protected]"
cmd.Parameters.AddWithValue("@Cliente", strName)
我自動完成過程中使用此,顯示了客戶端的名稱許可證號碼(和其他類似的代碼)。在數據庫客戶端記錄可以有所有的代碼字段編譯或只是1.
隨着非參數化查詢自動完成建議彈出,與參數化的一個沒有顯示。沒有錯誤。
編輯: 使用相同的功能這
cmd.Parameters.Add("@Cliente", SqlDbType.VarChar)
cmd.Parameters("@Cliente").Value = strName
現在另一個查詢(semplicity前省略)的作品,但是,自嘆不如,一個爲我所做的這個問題沒有。
工作:
cmd.CommandText = "select idcliente, ragsociale from Clienti where ragsociale like '%'[email protected]+'%' or [email protected]"
仍無法正常工作:
cmd.CommandText = "select idcliente, ragsociale from Clienti where idcliente = @Cliente or [email protected] or [email protected]"
你知道你可以將其重寫爲'where @Cliente in(idcliente,codiceamministrazione,piva,codfisc)' –
請不要使用.AddWithValue!我認爲,這是問題所在。 – muffi
[Joel Coehoorn的博客文章](https://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/)重申muffi的言論。 –