Bonjour tout le monde,

J'essaye depuis je ne sais combien de temps de supprimer une ligne dans une "datagridview" en cliquant sur une cellule et ensuite sur le bouton "Delete", mais en vain j'arrive a supprimer dans la datagridview mais pas sur ma "base de donnée"

* Dans la fonction supprimé, il y a une ligne commenté car je peux également supprimer une ligne via le ID en le tapant directement et en cliquant sur "Delete" ( Qui fonctionne )

Merci pour tous ceux qui prendront le temps de regarder !!!!!!!


Un Screenshot de mon micro Programme :

Nom : Sans titre.png
Affichages : 1315
Taille : 6,8 Ko

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
// Ajout de la librairie MYSQL, ne pas oublier d'ajouter la reference MYSql.Data 
 
using MySql.Data.MySqlClient;
using System;
using System.Data;
using System.Windows.Forms;
 
namespace TestBDD
{
    public partial class Form1 : Form
    {
 
        // Il faut rentrer les informations du serveur ou la base de donnees est hebergee.
 
        MySqlConnection connection = new MySqlConnection("datasource=localhost; database=test; port=3306; username=root; password= ");
        MySqlCommand command;
        public Form1()
        {
            InitializeComponent();
        }
 
        // Creation d'une fonction pour verifier si la connection est ouverte, et si elle ne l'est pas alors de l'ouvrir
        public void OpenConnection()
        {
            if (connection.State == ConnectionState.Closed)
            {
                connection.Open();
            }
        }
 
        // Creation d'une fonction pour verifier si la connection est fermee, et si elle ne l'est pas alors de fermer
 
        public void CloseConnection()
        {
            if (connection.State == ConnectionState.Open)
            {
                connection.Close();
            }
        }
 
        // Creation d'une autre fonction pour envoyer des messages si les donnees on bien etes inserees, modifiees etc...
 
        public void ExecuteQuery(string query)
        {
            try
            {
                OpenConnection();
                command = new MySqlCommand(query, connection);
                if (command.ExecuteNonQuery() == 1)
                {
                    MessageBox.Show("Query execute");
                }
                else
                {
                    MessageBox.Show("Query pas execute");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                CloseConnection();
            }
        }
 
        // Insertion des donnees dans la base de donnees.
 
        private void BtnInsert_Click(object sender, EventArgs e)
        {
            string insertQuery = "INSERT INTO testdb(Nom,Age) VALUES('" + TBoxNom.Text + "','" + int.Parse(TBoxAge.Text) + "')";
            ExecuteQuery(insertQuery);
            RefreshDataGridView(dataGridView);
        }
 
        // MAJ des donnees dans la base de donnees.
 
        private void BtnUpdate_Click(object sender, EventArgs e)
        {
            string updateQuery = "UPDATE testdb SET Nom='" + TBoxNom.Text + "', Age='" + int.Parse(TBoxAge.Text) + "' WHERE ID = " + int.Parse(TBoxId.Text);
            ExecuteQuery(updateQuery);
            RefreshDataGridView(dataGridView);
        }
 
        // Suppression des donnees dans la base de donnees.
 
        private void BtnDelete_Click(object sender, EventArgs e)
        {
            int rowIndex = dataGridView.CurrentCell.RowIndex;
            dataGridView.Rows.RemoveAt(rowIndex);
 
            //string deleteQuery = "DELETE FROM testdb WHERE ID =" + int.Parse(TBoxId.Text);
            string deleteQuery = "DELETE FROM testdb WHERE ID =" + rowIndex;
            ExecuteQuery(deleteQuery);
            RefreshDataGridView(dataGridView);
        }
 
        // Fonction de raffraichissement de la datagridView
 
        public void RefreshDataGridView(DataGridView dataGridView)
        {
            try
            {
                if (connection.State == ConnectionState.Closed)
                    connection.Open();
                MySqlDataAdapter dataAdapter = new MySqlDataAdapter("SELECT * FROM testdb", connection);
                DataTable dataTable = new DataTable();
                dataAdapter.Fill(dataTable);
                dataGridView.DataSource = dataTable;
            }
            catch (MySqlException exception)
            {
                MessageBox.Show(exception.ToString());
            }
            finally
            {
                connection.Close();
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            RefreshDataGridView(dataGridView);
        }
    }
}