Dzieje się tak dlatego, że definiujesz parametr w .NET jako ReturnValue, który w rzeczywistości odpowiada scenariuszowi, w którym używasz RETURN w procedurze składowanej, aby zwrócić liczbę całkowitą (czego nie robisz).
Zamiast tego należy zdefiniować parametr @strFailedEMPID jako ParameterDirection.Output w kodzie platformy .NET. Jeśli chcesz przekazać wartość do ORAZ otrzymać ją przez parametr, użyj ParameterDirection.InputOutput.
Po wykonaniu sproc, po prostu:
string value = lsqlCmd.Parameters["@strFailedEMPID"].value;
Więc....
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;