2016-11-08 91 views
0

以下SQL按預期在工作臺中運行,但在從C#應用程序中啓動它時生成一個錯誤「parameter @search must be defined」。任何人都可以解釋嗎?忽略MySql用戶變量

set @search = 'b%'; 
select * from country where Name like @search 
+1

你如何「從C#應用程序中啓動它」?你能告訴我你的代碼嗎? – PaulF

回答

2

MySQL使用@variable_name表達式作爲用戶定義的變量。 C#(或提供者 - 不太確定哪一個)使用@parameter_name在查詢中註釋參數佔位符。

如果你想使用SQL用戶定義的變量,那麼下面的參數添加到您的.NET連接器連接的連接字符串:

Allow User Variables=True 

AllowUserVariables=True 

此選項加入connector v5.2.2

+0

很酷。有沒有理由不這樣做?爲什麼它默認關閉? – bbsimonbb

+0

由於我不是MySQL的.net連接器的開發人員,我只能猜測更多的開發人員使用舊的'@ parameter_name'約定中的參數,而不是MySQL用戶定義的變量。 – Shadow