簡體   English   中英

具有輸出參數的存儲過程在C#中返回-1

[英]Stored procedure with output parameters returns -1 in c#

我有一個使用Entity Framework 5.0的簡單c#應用程序,應使用輸出參數調用存儲過程。 問題在於它不起作用,而是返回-1。

我擁有的c#代碼如下所示:

// Define the output paramaters
SqlParameter operatorID = new SqlParameter("@operatorID", SqlDbType.Int);
operatorID.Direction = ParameterDirection.Output;
SqlParameter operatorCode = new SqlParameter("@operatorCode", SqlDbType.Int);
operatorCode.Direction = ParameterDirection.Output;

var parameters = new List<object>();
parameters.Add(operatorID);
parameters.Add(operatorCode);

var noOutput = context.Database.ExecuteSqlCommand("EXEC my_sp_name @operatorID, @operatorCode", parameters.ToArray());

存儲過程如下所示:

CREATE PROCEDURE [dbo].[my_sp_name] 
( 
     @operatorID        int             OUTPUT 
    ,@operatorCode      int             OUTPUT
 )
AS
    SET @operatorID = 123

我知道這沒有任何意義,但這只是一個測試。

執行c#代碼后的問題是noOutput值為-1且operatorID值為空,我希望它是123

有人知道我做錯了什么嗎?

您查詢中的參數必須使用OUTPUT關鍵字

var noOutput = context.Database.ExecuteSqlCommand("EXEC my_sp_name @operatorID OUTPUT, @operatorCode OUTPUT", parameters.ToArray());

檢查“ operatorCode.Value”屬性。 執行后結果將在那里。

如果不是,請嘗試使用CommandType.StoredProcedure ,然后執行帶有存儲過程名稱和參數的命令。 您將獲得輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM