我迷路了......这是我的存储过程:
@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 时,我在“结果”中看到 2 个值:
我猜 ExecuteScalar 正在返回“返回值”的值。
那么如何获得“ReturnCode”的值呢?
在过去的 36 小时里,我一直在谷歌上搜索它。答案可能就在那里,但是....在哪里?没找到。
任何提示将不胜感激。
(Win-7 , SS-2014 , VS-2013)