繁体   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