Det er fordi du definerer parameteren i .NET som en ReturnValue, hvilket faktisk ville svare til scenariet, hvor du bruger RETURN i den lagrede procedure til at returnere et heltal (hvilket du ikke gør).
I stedet skal du definere @strFailedEMPID-parameteren som ParameterDirection.Output i din .NET-kode. Hvis du vil sende en værdi ind OG modtage en ud gennem parameteren, skal du bruge ParameterDirection.InputOutput.
Efter at have udført sproc'en, skal du bare:
string value = lsqlCmd.Parameters["@strFailedEMPID"].value;
Så...
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;