簡體   English   中英

Database.ExecuteSqlCommand始終返回-1

[英]Database.ExecuteSqlCommand always returns -1

我有一個EF代碼優先模型。 它工作正常,但是當我嘗試使用Database.ExecuteSqlCommand運行存儲過程時它始終返回-1,無論我在存儲過程中放置​​什么結果總是-1

我的存儲過程:

CREATE PROCEDURE [dbo].[Login_user] 
    @clientKey varchar(max)
AS
BEGIN
    SET NOCOUNT ON
    RETURN(0)
END

我運行它像:

return Database.ExecuteSqlCommand(EXEC [dbo].[Login_user] {0}", key);

我錯過了什么嗎?

順便說一下,如果我從SQL Server Management Studio運行存儲過程,它返回0

USE [lo9iMed]
GO
DECLARE @return_value int
EXEC    @return_value = [dbo].[Login_user]
    @clientKey = N'76F41F99-EA9E-4181-A6FB-579D23D3C2C0'

SELECT  'Return Value' = @return_value

提前致謝。

阿尼巴爾

您的存儲過程中包含SET NOCOUNT ON指令(您可能使用了SSMS模板?)。 這意味着它不會計算受命令影響的行數。 刪除這一行,你應該好好去! :)

因為您使用的是SELECT ,所以您需要的是ExecuteScalar - 或者如果沒有公開,則為SqlQuery<int> 如果你改變它以return @return_value;可能得到你想要的結果return @return_value; - 但是:你可能不會。

暫無
暫無

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

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