Het is omdat je de parameter in .NET definieert als een ReturnValue, wat feitelijk gelijk zou zijn aan het scenario waarin je RETURN gebruikt in de opgeslagen procedure om een geheel getal te retourneren (wat je niet doet).
In plaats daarvan moet u de parameter @strFailedEMPID definiëren als ParameterDirection.Output binnen uw .NET-code. Als u een waarde wilt doorgeven EN er een wilt ontvangen via de parameter, gebruikt u ParameterDirection.InputOutput.
Na het uitvoeren van de sproc, moet je gewoon:
string value = lsqlCmd.Parameters["@strFailedEMPID"].value;
Dus ....
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;