2011-03-14 3 views
0
CREATE PROCEDURE [dbo].[Code]   
@intEpmName NUMERIC,    
@strFailedEMPID VARCHAR(1000) output  
AS 

DECLARE  
@FailedCodes VARCHAR(1000) 
BEGIN 
---- 
my logic where i need return the value 
SET @strFailedEMPID = @FailedCodes 
----- 
END 

위의 저장 프로 시저에서 @strFailedEMPID에 값을 "내 프로 시저"로 보낼 수 있습니다. 내 프로 시저에서 값을 반환하는 경우에는, 다음 같은 변수 @strFailedEMPID에 나는 같은 값을 보낸다 :프로 시저 SQL Server 2005에서 반환 값을 얻는 방법

lsqlParam = new SqlParameter("@strFailedEMPID ", SqlDbType.VarChar); 
lsqlParam.Value = "0"; 
lsqlParam.Direction = ParameterDirection.ReturnValue; 
lsqlCmd.Parameters.Add(lsqlParam); 

사람은 프로 시저의 반환 값을 얻을 수있는 올바른 구문을 도와 드릴까요?

+0

당신은 당신의 C# 코드에서'Output'하지'ReturnValue'로 ParameterDirection을 선언해야 – codingbadger

답변

1

당신이 (당신이 일을하지 않는) 정수를 반환하는 저장 프로 시저에서 RETURN을 사용하는 경우 실제로 시나리오에 동일시 것에 ReturnValue로 .NET에서 매개 변수를 정의하는 때문입니다.

대신, 당신은 당신의 .NET 코드 내 ParameterDirection.Output로 @strFailedEMPID 매개 변수를 정의해야합니다. 매개 변수를 통해 값을 전달하고 값을 전달하려면 ParameterDirection.InputOutput을 사용하십시오.

SPROC를 실행 한 후, 당신은 단지 :

string value = lsqlCmd.Parameters["@strFailedEMPID"].value; 

그래서 ....

lsqlParam = new SqlParameter("@strFailedEMPID ", SqlDbType.VarChar); 
lsqlParam.Value = "0"; 
lsqlParam.Direction = ParameterDirection.InputOutput; 
lsqlCmd.Parameters.Add(lsqlParam); 

lsqlCmd.ExecuteNonQuery(); 
string value = lsqlCmd.Parameters["@strFailedEMPID"].value; 
관련 문제