2012-02-04 71 views
3

我想調用一個存儲過程,它需要兩個參數(用戶名&密碼)並返回兩個值類型int('result'和'group')'result'用於檢查用戶是否有效或不和「組」只是表明用戶的組號 有三種類型組 組#1:admin用戶 組#2:自定義用戶 grpup#3:特殊用戶需要兩個來自存儲過程的返回值在c#

下面是我目前的代碼,它只返回結果

ALTER PROCEDURE [dbo].[suserpass] 
@username Varchar(50), 
@password varchar(50), 
@result int OUTPUT, 
@group int OUTPUT 

AS 
IF EXISTS (select [user] from [userpassTable] where [user] = @username and [pass][email protected]) 
    set @result=1 

else 
    set @result=0 

謝謝

回答

0

你需要爲下面你需要設置兩個輸出變量,會做你的任務做soemthing .....

ALTER PROCEDURE [dbo].[suserpass] 
    @username Varchar(50), 
    @password varchar(50), 
    @result int OUTPUT, 
    @group int OUTPUT 

    AS 
    IF EXISTS (select [user] from [userpassTable] where [user] = @username and [pass][email protected]) 
    begin 
     select @result=1 
     select @group = usergroup from [userpassTable] where [user] = @username and [pass][email protected] 
    end 
    else 
    begin 
     select @result=0 
     select @group=0 
    end 
0

設置兩個輸出參數。

你可以這樣說:

IF EXISTS (SELECT [user] FROM [userpassTable] 
      WHERE [user] = @username AND [pass] = @password) 
BEGIN 
    SELECT @result=1 , @group = group 
    FROM [userpassTable] 
    WHERE [user] = @username 
END 
else 
BEGIN 
    SELECT @result=0 , @group = 0 -- group 0 doesn't exist, used as user does exist 
END 

我已經添加了可讀性BEGIN/END塊,並允許多個語句。

在C#都@result@group應設置爲輸出參數。

+0

如何將他使用這些值?它必須經過#t。 – 2012-02-04 13:46:59

+0

@RoyiNamir - 我不關注。什麼是'#t'? – Oded 2012-02-04 13:48:33

+0

tmp表........ – 2012-02-04 13:49:07

0

我想的是,在概念上,您正在尋找這樣的事情(避風港「T測試的代碼):

ALTER PROCEDURE [dbo].[suserpass] 
@username Varchar(50), 
@password varchar(50), 
@result int OUTPUT, 
@group int OUTPUT 

AS 
IF EXISTS (select [user] from [userpassTable] where [user] = @username and [pass] = @password) 
    BEGIN 
    set @result = 1 
    set @group = (select (top 1) [groupType] from [userGroupTable] where [user] = @username) 
    END 
else  
    set @result=0