2015-08-14 53 views
0

我」,因此失去了....這是我的存儲過程:ExecuteScalar沒有傳遞正確的參數。總是返回0

@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個PARAMS,然後程序:

... 
con.Open(); 
int ReturnCode = (int)cmd.ExecuteScalar(); 
Response.Write(ReturnCode); 

但myReturnCode始終爲0。

當我執行在SSMS的PROC是我在「結果」看2個值:

enter image description here

我想ExecuteScalar返回「返回值」的值。
那麼如何獲得「ReturnCode」的值呢?

我在過去的36小時內一直在使用Google。答案可能在那裏,但是......在哪裏?找不到它。
任何提示將不勝感激。
(Win-7,SS-2014,VS-2013)

+0

[我如何刪除我的問題?](http://meta.stackexchange.com/questions/42265/how-can-i-delete-my-question) –

回答

0

我真誠的道歉......其中一個表中的數據無效。該過程從來沒有找到它的意圖找到,因此它總是返回0.存儲過程和代碼都很好。修復該表中的數據解決了我的問題。

我很慚愧....現在我該如何殺死這個問題?這個論壇只是白色的噪音。