Hai bisogno di un parametro con la direzione impostata su ParameterDirection.ReturnValue
nel codice ma non è necessario aggiungere un parametro aggiuntivo in SP. Prova questo
SqlParameter returnParameter = cmd.Parameters.Add("RetVal", SqlDbType.Int);
returnParameter.Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery();
int id = (int) returnParameter.Value;