EntrepotEffectifDetail.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using CG67.FicheCollege.Domaine;
  7. using CG67.FicheCollege.Interface;
  8. namespace CG67.FicheCollege.Entrepot
  9. {
  10. class EntrepotEffectifDetail: EntrepotBase, IEntrepotEffectifDetail
  11. {
  12. public IList<EffectifDetail> GetByCodeRNEAndAnnee(string codeRNE, int annee)
  13. {
  14. IList<EffectifDetail> resultat = new List<EffectifDetail>();
  15. using (SqlConnection connexion = new SqlConnection(this.ChaineDeConnexion))
  16. {
  17. try
  18. {
  19. connexion.Open();
  20. using (SqlCommand command = connexion.CreateCommand())
  21. {
  22. //On récupère les effectifs détaillés pour les classes de SEGPA, CLA, UPI
  23. command.CommandText = "Select annee, filiere, Sum(TotalEleves) As SomEleves from Effectif GROUP BY CodeRNE, Annee, Filiere HAVING CodeRNE = @RNE AND Annee = @Annee ";
  24. command.Parameters.AddWithValue("@RNE", codeRNE);
  25. command.Parameters.AddWithValue("@Annee", annee);
  26. using (SqlDataReader dr = command.ExecuteReader())
  27. {
  28. while (dr.Read())
  29. {
  30. resultat.Add(new EffectifDetail(Convert.ToInt16(dr["Annee"].ToString()), dr["Filiere"].ToString(), Convert.ToInt16(dr["TotalEleves"].ToString())));
  31. }
  32. }
  33. }
  34. }
  35. catch (Exception erreurInterne)
  36. {
  37. throw new Exception(" " + erreurInterne);
  38. }
  39. finally
  40. {
  41. if (connexion.State == ConnectionState.Open)
  42. connexion.Close();
  43. }
  44. }
  45. return resultat;
  46. }
  47. }
  48. }