public bool UpdPrevision(Prevision pr) { // Recherche dans la liste int rang = previsions.IndexOf(pr); if (rang != -1) { previsions[rang] = pr; return true; } else return false; }
public bool DelPrevision(Prevision pr) { try { previsions.Remove(pr); return true; } catch (Exception ex) { return false; } }
// validation après bouton créer ou modifier private void btnValider_Click(object sender, EventArgs e) { // Controles if (cboQualif.SelectedIndex == -1) MessageBox.Show("Choisir une qualification"); else if (nudJours.Value == 0) MessageBox.Show("Saisir le nombre de jours"); else // controles OK { // creer une nouvelle prévision Prevision newP = new Prevision(); newP.LaQualif = (Qualification)cboQualif.SelectedItem; newP.NbJours = (short)nudJours.Value; newP.CodeProjet = leProjetEnCours.CodeProjet; if (Mode == "C") // création { // Controle qualif non existe déjà if (leProjetEnCours.GetPrevisions().Contains(newP)) MessageBox.Show("Existe déjà"); else { try { // ajout en base int idPrev = DaoProjet.AddPrevision(newP); // si ok if (idPrev != 0) { newP.CodePrev = idPrev; // ajout projet leProjetEnCours.AddPrevision(newP); // rafraichissement du datagrid view this.previsionBindingSource.ResetBindings(false); MessageBox.Show(String.Format("Prévision ajoutée")); // efface le group box gbUnePrevision.Visible = false; // Datagrid view devient peut être visible apres 1er ajout if (!dgvPrevisions.Visible) { dgvPrevisions.Visible = true; lblTitre.Text = "Les previsions"; } } } catch (DaoExceptionFinAppli defa) { MessageBox.Show(defa.Message); Application.Exit(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } else // Modification { try { newP.CodePrev = newPMS.CodePrev; newP.CodeProjet = newPMS.CodeProjet; // modif en base if (DaoProjet.UpdPrevision(newP)) { //modif dans les prévisions projet leProjetEnCours.UpdPrevision(newP); // rafraichissement du datagrid view this.previsionBindingSource.ResetBindings(false); // efface le group box gbUnePrevision.Visible = false; } } catch (DaoExceptionFinAppli defa) { MessageBox.Show(defa.Message); Application.Exit(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }
// modification ou suppression dans le dategrid view private void dgvPrevisions_CellClick(object sender, DataGridViewCellEventArgs e) { // L'evenement DataGridViewCellEventArgs donne la colonne et la ligne de la cellule cliquée bool success = false; // Ignore click qui n'est pas sur une cellule bouton if ((e.RowIndex >= 0 && e.ColumnIndex == dgvPrevisions.Columns["btnModifier"].Index) || (e.RowIndex >= 0 && e.ColumnIndex == dgvPrevisions.Columns["btnSupprimer"].Index) ) { // A partir des objets DataBoundItem //====================================== // creer la prévision à modifier ou supprimer newPMS = (dgvPrevisions.Rows[e.RowIndex]).DataBoundItem as Prevision; //Modif ou Suppression if (e.ColumnIndex == dgvPrevisions.Columns["btnModifier"].Index) { Mode = "M"; // affectations champs du groupBox nudJours.Value = newPMS.NbJours; cboQualif.SelectedItem = newPMS.LaQualif; // affiche le groupBox pour modification gbUnePrevision.Visible = true; } else { DialogResult dr = MessageBox.Show("Confirmez-vous la suppression", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (dr == DialogResult.Yes) { try { // Supprime en base success = DaoProjet.DelPrevision(newPMS); if (success) { // Supprime dans les prévisions du projet leProjetEnCours.DelPrevision(newPMS); // rafraichissement du datagrid view this.previsionBindingSource.ResetBindings(false); // Peut-être plus aucune prevision apres suppression AffichageDG(previsionBindingSource.Count); } } catch (DaoExceptionFinAppli defa) { MessageBox.Show(defa.Message); Application.Exit(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } }
public bool AddPrevision(Prevision pr) { previsions.Add(pr); return true; }
public static int AddPrevision(Prevision pr) { // création connection using (SqlConnection sqlConnect = GetConnection()) { // projet forfait using (SqlCommand sqlCde = new SqlCommand()) { //initialiser la connection de la commande sqlCde.Connection = sqlConnect; sqlCde.CommandType = CommandType.StoredProcedure; string strSql = "AddPrevision"; sqlCde.CommandText = strSql; sqlCde.Parameters.Add(new SqlParameter("@idProjet", SqlDbType.Int)).Value = pr.CodeProjet; sqlCde.Parameters.Add(new SqlParameter("@idQualif", SqlDbType.TinyInt)).Value = pr.LaQualif.CodeQualif; sqlCde.Parameters.Add(new SqlParameter("@nbjours", SqlDbType.Int)).Value = pr.NbJours; // ajout du code prevision en sortie SqlParameter pOut = new SqlParameter("@idPrev", SqlDbType.Int); pOut.Direction = ParameterDirection.Output; sqlCde.Parameters.Add(pOut); // exécution de la requete //======================== try { int n = sqlCde.ExecuteNonQuery(); if (n != 1) throw new DaoExceptionAfficheMessage("L'opération n'a pas été réalisée"); return (int)pOut.Value; } catch (SqlException se) { throw new DaoExceptionAfficheMessage("L'opération n'a pas été réalisée: \n" + se.Message, se); } } } }
public static bool UpdPrevision(Prevision pr) { // création connection using (SqlConnection sqlConnect = GetConnection()) { // projet forfait using (SqlCommand sqlCde = new SqlCommand()) { //initialiser la connection de la commande sqlCde.Connection = sqlConnect; string strSql = "UpdPrevision"; sqlCde.CommandText = strSql; sqlCde.CommandType = CommandType.StoredProcedure; // affectation du parametre idprojet à la procédure stockée sqlCde.Parameters.Clear(); sqlCde.Parameters.Add(new SqlParameter("@idPrevision", SqlDbType.Int)).Value = pr.CodePrev; sqlCde.Parameters.Add(new SqlParameter("@idQualif", SqlDbType.TinyInt)).Value = pr.LaQualif.CodeQualif; sqlCde.Parameters.Add(new SqlParameter("@nbjours", SqlDbType.Int)).Value = pr.NbJours; try { int n = sqlCde.ExecuteNonQuery(); if (n != 1) throw new DaoExceptionAfficheMessage("L'opération n'a pas été réalisée"); return true; } catch (SqlException se) { throw new DaoExceptionAfficheMessage("L'opération de suppression n'a pas été réalisée: \n" + se.Message, se); } } } }
// Les prévisions //================ public static List<Prevision> GetPrevisionByProjet(int idProjet) { List<Prevision> Previsions = new List<Prevision>(); // création connection using (SqlConnection sqlConnect = GetConnection()) { // projet forfait using (SqlCommand sqlCde = new SqlCommand()) { //initialiser la connection de la commande sqlCde.Connection = sqlConnect; // chargement des qualifications String strSql = "GetPrevisionByProjet"; sqlCde.CommandText = strSql; sqlCde.CommandType = CommandType.StoredProcedure; sqlCde.Parameters.Add(new SqlParameter("@idProjet", SqlDbType.Int)).Value = idProjet; // Exécution de la commande try { SqlDataReader sqlRdr = sqlCde.ExecuteReader(); while (sqlRdr.Read()) { // Création objet Prevision oPrev = new Prevision() { CodePrev = sqlRdr.GetInt32(0), CodeProjet = sqlRdr.GetInt32(1), LaQualif = new Qualification() { CodeQualif = Convert.ToSByte(sqlRdr[2]) }, NbJours = sqlRdr.GetInt16(3) }; // ajout liste Previsions.Add(oPrev); } sqlRdr.Close(); return Previsions; } catch (SqlException se) { throw new DaoExceptionFinAppli("Lecture des previsions impossible, l'application va se fermer: \n" + se.Message, se); } } } }