开发者

how to get return value from procedure sql server 2005 to c#

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 

In the stored procedure above, I can send the value as "0" to @strFailedEMPID then to my procedure. However, when I return the value from my procedure, then to the same variable @strFailedEMPI开发者_运维知识库D I am sending the value as such:

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

Can anyone help with the correct syntax to get the return value from the procedure?


It's because you are defining the parameter in .NET as a ReturnValue which would actually equate to the scenario where you use RETURN within the stored procedure to return an integer (which you're not doing).

Instead, you need to define the @strFailedEMPID parameter as ParameterDirection.Output within your .NET code. If you want to pass a value in AND receive one out through the parameter, use ParameterDirection.InputOutput.

After executing the sproc, you then just:

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

So....

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;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜