#region Ressources extérieures using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using ProjetTheAlone.Classes; #endregion namespace ProjetTheAlone.Acces { /// /// Couche d'accès aux données (Data Access Layer) /// public class A_T_plat : ADBase { public enum TypePlat_E { soupe, plat, dessert} #region Constructeurs public A_T_plat(string sChaineConnexion) : base(sChaineConnexion) { } #endregion public int Ajouter(string P_nom, byte?[] P_img, int? ID_typePlat) { CreerCommande("AjouterT_plat"); int res = 0; Commande.Parameters.Add("ID_plat", SqlDbType.Int); Direction("ID_plat", ParameterDirection.Output); if(P_nom == null) Commande.Parameters.AddWithValue("@P_nom", Convert.DBNull); else Commande.Parameters.AddWithValue("@P_nom", P_nom); if(P_img == null) Commande.Parameters.AddWithValue("@P_img", Convert.DBNull); else Commande.Parameters.AddWithValue("@P_img", SqlDbType.Image).Value = Outil.toByteArray.Convert(P_img); if(ID_typePlat == null) Commande.Parameters.AddWithValue("@ID_typePlat", Convert.DBNull); else Commande.Parameters.AddWithValue("@ID_typePlat", ID_typePlat); Commande.Connection.Open(); Commande.ExecuteNonQuery(); res = int.Parse(LireParametre("ID_plat")); Commande.Connection.Close(); return res; } public int Modifier(int ID_plat, string P_nom, byte?[] P_img, int? ID_typePlat) { CreerCommande("ModifierT_plat"); int res = 0; Commande.Parameters.AddWithValue("@ID_plat", ID_plat); if(P_nom == null) Commande.Parameters.AddWithValue("@P_nom", Convert.DBNull); else Commande.Parameters.AddWithValue("@P_nom", P_nom); if(P_img == null) Commande.Parameters.AddWithValue("@P_img", Convert.DBNull); else Commande.Parameters.AddWithValue("@P_img", SqlDbType.Image).Value = Outil.toByteArray.Convert(P_img); if (ID_typePlat == null) Commande.Parameters.AddWithValue("@ID_typePlat", Convert.DBNull); else Commande.Parameters.AddWithValue("@ID_typePlat", ID_typePlat); Commande.Connection.Open(); Commande.ExecuteNonQuery(); Commande.Connection.Close(); return res; } public List Lire(string Index) { CreerCommande("SelectionnerT_plat"); Commande.Parameters.AddWithValue("@Index", Index); Commande.Connection.Open(); SqlDataReader dr = Commande.ExecuteReader(); List res = new List(); while (dr.Read()) { C_T_plat tmp = new C_T_plat(); tmp.ID_plat = int.Parse(dr["ID_plat"].ToString()); if(dr["P_nom"] != DBNull.Value) tmp.P_nom = (dr["P_nom"].ToString()); if(dr["P_img"] != DBNull.Value) tmp.P_img = Outil.toNullableByteArray.Convert((byte[])dr["P_img"]); var x = dr["ID_typePlat"]; if (dr["ID_typePlat"] != DBNull.Value) tmp.ID_typePlat = (C_T_plat.TypePlat_E)(int.Parse(dr["ID_typePlat"].ToString())); res.Add(tmp); } dr.Close(); Commande.Connection.Close(); return res; } /// /// Permet de récupérer la liste des plats d'un repas /// public List ListPlat(int ID_repa) { CreerCommande("ListPlat"); Commande.Parameters.AddWithValue("@ID_repa", ID_repa); Commande.Connection.Open(); SqlDataReader dr = Commande.ExecuteReader(); List res = new List(); while (dr.Read()) { C_T_plat tmp = new C_T_plat(); tmp.ID_plat = int.Parse(dr["ID_plat"].ToString()); if (dr["P_nom"] != DBNull.Value) tmp.P_nom = (dr["P_nom"].ToString()); if (dr["P_img"] != DBNull.Value) tmp.P_img = (byte?[])(dr["P_img"]); if (dr["ID_typePlat"] != DBNull.Value) tmp.ID_typePlat = (C_T_plat.TypePlat_E)int.Parse(dr["ID_typePlat"].ToString()); res.Add(tmp); } dr.Close(); Commande.Connection.Close(); return res; } public C_T_plat Lire_ID(int ID_plat) { CreerCommande("SelectionnerT_plat_ID"); Commande.Parameters.AddWithValue("@ID_plat", ID_plat); Commande.Connection.Open(); SqlDataReader dr = Commande.ExecuteReader(); C_T_plat res = new C_T_plat(); while (dr.Read()) { res.ID_plat = int.Parse(dr["ID_plat"].ToString()); if(dr["P_nom"] != DBNull.Value) res.P_nom = (dr["P_nom"].ToString()); if(dr["P_img"] != DBNull.Value) res.P_img = Outil.toNullableByteArray.Convert((byte[])dr["P_img"]); if(dr["ID_typePlat"] != DBNull.Value) res.ID_typePlat = (C_T_plat.TypePlat_E)int.Parse(dr["ID_typePlat"].ToString()); } dr.Close(); Commande.Connection.Close(); return res; } public int Supprimer(int ID_plat) { CreerCommande("SupprimerT_plat"); int res = 0; Commande.Parameters.AddWithValue("@ID_plat", ID_plat); Commande.Connection.Open(); res = Commande.ExecuteNonQuery(); Commande.Connection.Close(); return res; } } }