我在使用MySql查询时遇到麻烦。

string strSql = "select SQL_CALC_FOUND_ROWS *, pv.* from products pv WHERE pv.name = 'Teddy Bear';";

strSql += "SET @resultCount = FOUND_ROWS();"

MySqlParameter parm = new MySqlParameter("@resultCount",MySqlDbType.Int32)
parm.Direction = ParameterDirection.Output;

var result = ObjectContext.ExecuteStoreQuery<Product>(strSql,parm);
return result;


返回的错误是


  您的SQL语法有误。检查与您的MySQL服务器版本相对应的手册,以在第1行的'NULL = FOUND_ROWS()'附近使用正确的语法


我如何获取@resultCount以返回总记录数

最佳答案

创建参数时,我认为您需要指定不带@的名称。

另外,您将需要指定参数的方向。我认为默认情况下它仅是输入,这意味着您需要提供一个将插入命令中的值。您想要的是输出。您可以在创建参数或设置属性时通过一些重载来指定方向-不知道语法是否与其他提供程序不同,因为我已经有一段时间没有使用MySql了,但是应该是:

parm.Direction = ParameterDirection.Output;

10-04 17:10