在mysql中正常查询的句子,在C#中出错,原因是定义了变量。


 在C#中

 查询一样。

运行报错

Fatal error encountered during command execution.”

命令执行过程中碰到的致命错误。”

MySqlException: Parameter '@row_number' must be defined.

MySqlException:参数必须定义“@row_number”。

语句中都定义了set

原因:因为在sql语句中使用了自定义参数:

所以……C#中没有加入Allow User Variables=True;没有办法操作
需要在连接的URL内加上Allow User Variables=True,完美解决。
这样:

private static string SQL_URL = "server=localhost;user id=【你的账号】;password=【你的密码】;database=【连接的数据库名】;Port=3306;CharSet=gb2312;Allow User Variables=True";

database=work;Charset=utf8mb4;SslMode=none;Allow User Variables=True

 这边插入有@UserName,但是没有set 不需要allow user variables