2012-11-27 89 views
3

我嘗試在MySQL中使用Parameterised查詢。這個理論似乎很簡單的,你創建的的MySqlCommand像這樣類的新實例:Parameters.AddWithValue不會用實際值替換佔位符文本

MySqlCommand command = new MySqlCommand(); 

此對象的的CommandText屬性設置爲一個MySQL查詢與佔位符,像這樣:

command.CommandText = "INSERT INTO `myTable` (`myField`) VALUES('@bar'); 

使用AddWithValue方法與實際值來代替我的佔位符文本:

command.Parameters.AddWithValue("@bar", "HelloWorld"); 

這就是我認爲它的工作原理,但實際上「@bar」這個詞最終被追加了,而不是「HelloWorld」。

我在做什麼錯?

+1

參數** **永遠代替佔位符文本。參數**不是佔位符文本** - 它們是:*參數*。這就是爲什麼*參數爲什麼以及如何解決SQL注入和查詢計劃重用等問題。 –

+0

@MarcGravell道歉,我不知道有什麼區別! Thankyou – JMK

回答

7

嘗試沒有在單引號包裹

command.CommandText = "INSERT INTO `myTable` (`myField`) VALUES(@bar); 
+0

這很完美,謝謝! – JMK

相關問題