我迷路了....这是我的存储过程:
@User_ID INT,
@Form_NAME NVARCHAR(25)
AS
BEGIN
DECLARE @Count int = 0
DECLARE @myReturnCode INT
SELECT @Count = COUNT (tblForms.Form_Name)
FROM tblForms INNER JOIN
tblForms_Roles_MTM ON tblForms.Form_Id = tblForms_Roles_MTM.Form_Id INNER JOIN
tblRoles ON tblForms_Roles_MTM.Role_Id = tblRoles.Role_Id INNER JOIN
tblUsers_Roles_MTM ON tblRoles.Role_Id = tblUsers_Roles_MTM.Role_Id
WHERE (tblUsers_Roles_MTM.User_Id = @User_ID AND tblForms.Form_Name = @Form_NAME)
IF @Count = 0
BEGIN SET @myReturnCode = 0 END
ELSE
BEGIN SET @myReturnCode = 1 END
SELECT @myReturnCode as ReturnCode
END
在我的代码后面,我调用过程传递2个参数然后:
...
con.Open();
int ReturnCode = (int)cmd.ExecuteScalar();
Response.Write(ReturnCode);
但myReturnCode始终为0.
当我在SSMS中执行proc时,我在“results”中看到2个值:
我猜ExecuteScalar正在返回“返回值”的值 那么如何获得“ReturnCode”的值?
过去36小时我一直在谷歌搜索它。答案可能就在那里,但......在哪里?找不到。
任何提示都将不胜感激
(Win-7,SS-2014,VS-2013)
答案 0 :(得分:0)
我真诚地道歉......其中一张表中的数据无效。该过程从未找到它的意图,因此它总是返回0.存储过程和代码都很好。修复该表中的数据解决了我的问题。
我很惭愧......现在我该如何解决这个问题呢?这个论坛只是白噪声。