private void txtMontant_KeyPress(object sender, KeyPressEventArgs e) { // Contrôle de la saisie du montant lors de la // pression d'une touche du clavier FrmAjoutTransaction.VerifSaisieMontant(e, txtMontant); if (e.KeyChar == (char)Keys.Enter && btnSearch.Enabled == true) { btnSearch_Click(null, null); } }
// Clique sur "Modifier" sur le menu déroulant private void modifierToolStripMenuItem_Click(object sender, EventArgs e) { try { // On récupère l'index de la ligne sélectionnée int rowToModify = dgvTransac.Rows.GetFirstRow(DataGridViewElementStates.Selected); int idTransac = (int)dgvTransac.Rows[rowToModify].Cells[0].Value; // Récupération des valeurs à modifier DataRow[] dtTransacSelect = ds.Tables["Transaction"].Select("codeTransaction = " + idTransac); string dateTransac = dtTransacSelect[0][1].ToString(); DateTime dt = Convert.ToDateTime(dateTransac); string description = dtTransacSelect[0][2].ToString(); string montant = dtTransacSelect[0][3].ToString(); bool recette = (bool)dtTransacSelect[0][4]; bool percu = (bool)dtTransacSelect[0][5]; int type = (int)dtTransacSelect[0][6]; // Création et affichage du formulaire de modification FrmAjoutTransaction frmAT = new FrmAjoutTransaction(connec, dt, description, montant, recette, percu, type); frmAT.ShowDialog(); // Si la modification est confirmée par l'utilisateur // On lance la modification de la transaction if (frmAT.confirmModif == DialogResult.Yes) { // Ouverture de la connection if (connec.State == ConnectionState.Closed) { connec.Open(); } // Récupération des infos modifiées dateTransac = frmAT.Date; description = frmAT.Description; montant = frmAT.Montant; recette = frmAT.Recette; percu = frmAT.Percu; type = frmAT.Type; // Construction de la requete SQL Update string cmdUpdate = @"UPDATE [Transaction] " + "SET [dateTransaction] = ?, [description] = ?, [montant] = ?, [recetteON] = ?, [percuON] = ?, [type] = ?" + "WHERE [codeTransaction] = ?"; OleDbCommand cmd = new OleDbCommand(cmdUpdate, connec); // Ajouts des paramètres cmd.Parameters.AddWithValue("@dateTransaction", dateTransac); //Si jamais la description n'est pas renseigne, on insert "NULL" dans la colonne description cmd.Parameters.AddWithValue("@description", string.IsNullOrEmpty(description) ? (object)DBNull.Value : description); cmd.Parameters.AddWithValue("@montant", montant); cmd.Parameters.AddWithValue("@recetteON", recette); cmd.Parameters.AddWithValue("@percuON", percu); cmd.Parameters.AddWithValue("@type", type); cmd.Parameters.AddWithValue("@codeTransaction", idTransac); // Exécution de la commande UPDATE cmd.ExecuteNonQuery(); MessageBox.Show("Transaction modifiée avec succès !", "Succès", MessageBoxButtons.OK, MessageBoxIcon.Information); // Mise a jour de la table locale dtTransacSelect[0][1] = dateTransac; dtTransacSelect[0][2] = description; dtTransacSelect[0][3] = montant; dtTransacSelect[0][4] = recette; dtTransacSelect[0][5] = percu; dtTransacSelect[0][6] = type; // Mise à jour du dgv pour affichage direct de la modification dgvTransac.Rows[rowToModify].SetValues(idTransac, dateTransac, description, montant, recette, percu, type); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { // Fermeture de la connection if (connec.State == ConnectionState.Open) { connec.Close(); } } }