Bonjour

Je débute avec ADO.net avec une base SQLite qui me sert à charger une DataTable "TableServeurs" que je met comme DataSource d'un DataGridView

Au chargement tout se passe bien

Ensuite j'ai un bouton pour ajouter une ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
            DataRow dr = Store.SingletonInstance.TableServeurs.NewRow();
            dr["Description"] = textBoxRef.Text ;
            dr["HostName"] = textBoxHostName.Text ;
 
            Store.SingletonInstance.AddServeur(dr);
Dans la classe Store (un singleton) j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public void AddServeur(DataRow item)
        {
            if (TableServeurs != null)
            {
                TableServeurs.Rows.Add(item);
                SaveDataTable(TableServeurs);
            }
        }
avec le SaDataTable ainsi
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
public void SaveDataTable(DataTable DT)
        {
            try
            {
                con.Open();
                cmd = con.CreateCommand();
                cmd.CommandText = string.Format("SELECT * FROM {0}", DT.TableName);
                adapter = new SQLiteDataAdapter(cmd);
                SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter);
                adapter.Update(DT);
                con.Close();
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.ToString(), "Erreur !", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }
Ca fonctionne parfaitement. idem pour une modification d'une ligne, c'est mis à jour et la base de donnée est bien modifiée avec les changements.

PROBLEME :
pour supprimer une ligne je fais ainsi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Store.SingletonInstance.RemoveServeur(((DataRowView)dataGridView1.SelectedRows[0].DataBoundItem).Row);
Dans Store.cs il y a
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public void RemoveServeur(DataRow item)
        {
                    TableServeurs.Rows.Remove(item);
                    SaveDataTable(TableServeurs); //fonctionne pour les ajout et les modifications, pas pour l'effacement d'une ligne.
                }
la ligne est bien supprimée du Datatable mais ne l'est pas dans la base de donnée, pourquoi ???

Merci par avance pour vos explications