.NET MySqlCommand @占位符与MySQL变量冲突

这是一个示例SQL,为了这个问题。 (实际的SQL比这个更复杂)

SET @HELLO = 1; SELECT @HELLO; 

如你看到的。 @HELLO是一个MySQL变量,但.NET MySQLCommand将其视为占位符,而不是绑定值。 无论如何我可以在.NET中使用MySQL变量吗?

看看下面的MySql.Data.MySqlClient.MySqlException:必须定义参数’@id’

哪个州

最后,我发现这确实是.Net Connector的变化。 (我不确定版本号是什么,但从5.2.0开始是我的猜测)从连接器的5.2.2版开始,你应该添加允许用户变量=真正的连接字符串设置,以便在你的用户定义的变量中使用SQL语句。

连接字符串示例:

  Database=testdb;Data Source=localhost;User Id=root;Password=hello;Allow User Variables=True