2010-09-15 137 views
0

我遇到了MySql查询问题。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服务器版本在列“NULL = FOUND_ROWS()”使用附近的正确的语法手册1

我怎么@resultCount要返回的总记录数

+1

由于错误的引用,您的SQL无效。我试图修补它,所以我可以读你的问题。我不知道这是否是问题,或者你是否在问题中错误地转录了它。 – 2010-09-15 12:59:35

回答

1

当创建参数我认为你需要指定名称没有@

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

parm.Direction = ParameterDirection.Output; 
+0

有或没​​有@仍然不能解决它。 param.Direction已经被指定,但我已经尝试了ParameterDirection下的所有可能的选项,但仍无济于事 – Damon 2010-09-15 22:02:08