我有一个存储过程,它将服务中的新记录插入数据库或更新现有记录。 但是如果成功插入/更新我需要显示true,如果失败,我需要在响应中显示false。
所以我的存储过程调用来自EF
result = database.usp_sp_name(parameters);
if (result==0)
return true;
else
return false;
我尝试了上面的代码,因为我在MSDN网站上读到,如果成功的事务意味着,结果将为0.但即使是插入记录或更新记录,我也得到错误的响应。
答案 0 :(得分:0)
在你的代码中,创建一个bool,它将保存storedproc的结果,如果storedproc的结果为1,则返回true。否则为false。
bool result = _entites.StoredProc(parameters);
return (result == 1) ? true: false;
但是在你的存储过程中 您应该创建一个返回类似
的值的过程CREATE PROCEDURE [dbo].[StoredProc]
@parameter
AS
BEGIN
DECLARE @result int
DECLARE @param nvarchar(255)
SET @param = @parameter
INSERT INTO (field1) VALUES (@param)
IF @@ERROR = 0
SET @result = 1
ELSE
SET @result = 0
RETURN @result
@@如果T-SQl语句没有遇到错误,则返回0。您可以使用它将结果设置为1或0.有关@@error的详细信息,请参阅此链接。