我一直在尋找一段時間,但我發現的答案通常涉及存儲過程或不同的功能。.Net MySql用戶定義的變量作爲輸出參數
我想執行一個閱讀器,並返回一個標量在一個查詢。我想我可以使用輸出參數來做到這一點,但我得到一個異常來檢查我的語法附近NULL = @rows_found(),所以它看起來輸出參數沒有得到初始化。
基本上我需要知道這是否可能,因爲我還沒有找到像這樣的代碼示例。
command.CommandText = @"
SELECT SQL_CALC_FOUND_ROWS
accounting.*
FROM
accounting
WHERE
transaction_type = @transaction_type
LIMIT
@index, @results;
SET @total_rows = FOUND_ROWS();
";
command.Parameters.AddWithValue("transaction_type", transaction_type);
command.Parameters.AddWithValue("index", index);
command.Parameters.AddWithValue("results", results);
MySqlParameter totalRows = new MySqlParameter("total_rows", 0);
totalRows.Direction = System.Data.ParameterDirection.Output;
command.Parameters.Add(totalRows);
using (MySqlDataReader dr = command.ExecuteReader())
{
while (dr.Read())
invoices.Add(new AccountingDataModel(dr));
}
invoices.Total = (int)totalRows.Value;
它實際上沒有那麼遠。從我讀的內容來看,輸出參數在datareader關閉時被綁定,這是發生異常的地方。再一次,您提供的答案是存儲過程。我懷疑你不能使用沒有存儲過程的輸出參數,但還沒有能夠在任何地方進行確認。 – crazyhor77