Bonjour,
Je viens poster ce message car cela fait plusieurs jours que je butte sur un problème pour lequel il me semble que je fais les choses corresctement.
Ce que dois faire mon programme:
1) Afficher dans un datagridview ma BDD
2) Supprimer une ligne dans la BDD
3) MAJ le datagridview
Mon problème: J'arrive à modifier le datagridview via des requêtes et il a le comportement attendu (si je supprime une ligne de la BDD via une requête, le datagridview est mis à jour correctement). Cependant quand je ferme totalement mon application, et que je vais consulter les données présentes dans la BDD, la ligne que j'ai précédemment supprimé dans le datagridview ne s'est pas supprimée de la BDD.
Je vous joint mon code ci-après (je précise que j'ai fait plusieurs test et que c'est pour cette raison que dans mon code les requêtes sont exécutées plusieurs fois de manière différentes):
Merci beaucoup d'avance
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 private void button1_Click(object sender, EventArgs e) { string MaRequete; ConnectionStringSettings parametreConnexion = ConfigurationManager.ConnectionStrings["sgbd"]; string MaChaineDeConnexion = parametreConnexion.ConnectionString; SqlConnection MaConnection = new SqlConnection(MaChaineDeConnexion); MaConnection.Open(); // Creation d'un objet Command MaRequete = "SELECT * FROM Fiche"; SqlCommand MaCommandeSQL = new SqlCommand(MaRequete, MaConnection); DataSet datasetSQL = new DataSet(); SqlDataAdapter dataAdapterSQL = new SqlDataAdapter(MaCommandeSQL); try { dataAdapterSQL.Fill(datasetSQL, "Fiche"); MaRequete = "DELETE FROM Fiche WHERE No = '" + No + "' AND Prenom = '" + Prenom + "' AND Nom = '" + Nom + "'"; MaCommandeSQL = new SqlCommand(MaRequete, MaConnection); MaCommandeSQL.Connection = MaConnection; MaCommandeSQL.ExecuteScalar(); dataAdapterSQL.Update(datasetSQL, "Fiche"); datasetSQL.Tables["Fiche"].AcceptChanges(); SqlCommand command = new SqlCommand("SELECT * FROM Fiche", MaConnection); dataAdapterSQL = new SqlDataAdapter(command); dataAdapterSQL.SelectCommand.ExecuteNonQuery(); command = new SqlCommand("DELETE FROM Fiche WHERE No = '" + No + "' AND Prenom = '" + Prenom + "' AND Nom = '" + Nom + "'", MaConnection); dataAdapterSQL = new SqlDataAdapter(command); dataAdapterSQL.SelectCommand.ExecuteNonQuery(); dataAdapterSQL.DeleteCommand = command; dataAdapterSQL.UpdateCommand = command; dataAdapterSQL = new SqlDataAdapter(command); dataAdapterSQL.Update(datasetSQL, "Fiche"); datasetSQL.Tables["Fiche"].AcceptChanges(); MaRequete = "SELECT * FROM Fiche"; MaCommandeSQL = new SqlCommand(MaRequete, MaConnection); datasetSQL = new DataSet(); dataAdapterSQL = new SqlDataAdapter(MaCommandeSQL); dataAdapterSQL.Fill(datasetSQL, "Fiche"); f.ficheDataGridView.DataSource = datasetSQL.Tables["Fiche"]; } catch (SqlException se) { MessageBox.Show(se.Message); } finally { MaConnection.Close(); } this.Close(); f.Refresh(); }
Nicolas
Partager