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;
精彩评论