2010-09-15 188 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