Това е така, защото дефинирате параметъра в .NET като ReturnValue, което всъщност би се приравнявало на сценария, при който използвате RETURN в съхранената процедура, за да върнете цяло число (което не правите).
Вместо това трябва да дефинирате параметъра @strFailedEMPID като ParameterDirection.Output във вашия .NET код. Ако искате да предадете стойност И да получите такава през параметъра, използвайте 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;