Dim command_sbsp As New OleDbCommand("SELECT * FROM SNOMED_ORG_INFO WHERE [email protected] AND Genus='SALMONELLA' AND [email protected]", SNOMED_DB)
For Each match As Long In choices
command_sbsp.Parameters.Clear()
command_sbsp.Parameters.AddWithValue("@Subsp", word)
command_sbsp.Parameters.AddWithValue("@ID", match)
上述不起作用。查詢嘗試表示沒有任何匹配的內容。但是,當我嘗試它作爲一個簡單的字符串連接時,它工作正常。VB.NET - 爲什麼這個sql命令作爲一個字符串工作,但不作爲參數化查詢?
command_sbsp = New OleDbCommand("SELECT * FROM SNOMED_ORG_INFO WHERE ConceptID=" + match.ToString + " AND Genus='SALMONELLA' AND SubSpecies='" + word + "'", SNOMED_DB)
我自己和一位同事已經注意到了很多,我們不知道爲什麼它不起作用。問題在於@ID的值(因爲當我離開參數化的另一個時,它仍然有效)。有趣的是,在它上面的幾行代碼中,我有一個不同的查詢,它爲同一個ID設置了一個參數化值,使用For Each循環從中獲取匹配變量的相同選擇列表。
選擇是一個多頭列表,當我使用選項(0)在查詢中參數化ID時,它可以工作。但現在在這個循環中,我有了新的比賽,並且不想讓它爲我工作。有什麼想法嗎?
是什麼類型'match'? 'command_sbsp.Parameters.AddWithValue(「@ ID」,match.ToString())'有什麼區別嗎? – asawyer
匹配長...這就是源的狀態 – Martin