Bonjour
J'ai un DataGride remplie de X lignes et un bouton "Supprimer".
Je cherche comment supprimer une ligne quelconque que je sélectionne moi même par un click sur le bouton "Supprimer".
y-a-t'il de l'aide et merci
Bonjour
J'ai un DataGride remplie de X lignes et un bouton "Supprimer".
Je cherche comment supprimer une ligne quelconque que je sélectionne moi même par un click sur le bouton "Supprimer".
y-a-t'il de l'aide et merci
Dans ton event Bttn_Click :
(Permet plusieurs suppression dans le cas de multi-sélection)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6For i As Integer = 0 To DGV.SelectedRows.Count -1 DGV.Rows.RemoveAt(i) Next
Bonjour,
Attention, avec
si l'utilisateur supprime les 5 dernières lignes cela va générer une erreur.
il vaut mieux faire
pour une seule ligne (la dernière sélectionnée même en cas de multisélection) (fonctionne même avec seulement un cellule sélectionnée)
Pour du multiligne sélectionnées (les lignes entières doivent être sélectionnées)
Code : Sélectionner tout - Visualiser dans une fenêtre à part dgv.Rows.RemoveAt(dgv.CurrentRow.Index)
Un exemple complet avec choix par CheckBox de la suppression de la ligne sélectionnée courante ou toutes les lignes sélectionnées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 For Each row As DataGridViewRow In dgv.SelectedRows dgv.Rows.Remove(row) Next
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ' choix du type de suppression Private Sub btnSup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSup.Click If ckbAllLines.Checked Then SupLignesSelect(DataGridView1) Else SupLigneCourante(DataGridView1) End Sub ' suppression de la ligne courante (sélection ligne ou sélection cellule) Sub SupLigneCourante(ByRef dgv As DataGridView) dgv.Rows.RemoveAt(dgv.CurrentRow.Index) End Sub ' suppression de toutes les lignes sélectionnées (sélection ligne) Sub SupLignesSelect(ByRef dgv As DataGridView) For Each row As DataGridViewRow In dgv.SelectedRows dgv.Rows.Remove(row) Next End Sub
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
Erreur de débutant.(C'est ça de pas tester le code qu'on propose ...)
Pour me rattraper je reprend ton code et rajoute un test pour ne pas supprimer la ligne d'ajout qui crachera.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 For Each row As DataGridViewRow In DataGridView1.SelectedRows If Not row.IsNewRow Then DataGridView1.Rows.Remove(row) End If Next
Et pour compléter le cas de la ligne courante
Code : Sélectionner tout - Visualiser dans une fenêtre à part If Not dgv.Rows(dgv.CurrentRow.Index).IsNewRow Then dgv.Rows.RemoveAt(dgv.CurrentRow.Index)
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
Merci pour tous mes amis
Je crois que j'ai mal expliquer mon problème. Je cherche comment supprimer une ligne quelconque que je sélectionne moi même par un click sur le bouton "Supprimer" de ma DataGrid ainsi que de ma Base de données.
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 Private Sub btnSup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSup.Click '--------------------- Suppression dans la Table TPersCertifs --------------------------------- Cn.Open() Cmd.Connection = Cn Cmd.CommandType = CommandType.Text Cmd.CommandText = "DELETE FROM TPersCertifs WHERE DateCertifs = la ligne sélectionné Cmd.ExecuteNonQuery() '--------------------- Re-Afficher DataGrid après Ajout dan la Table TPersCertifs ------------------------ Ds1.Clear() Cmd1.CommandType = CommandType.Text Cmd1.CommandText = "Select * From TPersCertifs INNER JOIN Certifs ON TPersCertifs.CodeCertifs = Certifs.CodeCertifs Where CIN = " & FrmPersonnel.TXTCIN.Text & " Order By TPersCertifs.DateCertifs DESC" Da1 = New OleDb.OleDbDataAdapter(Cmd1) Cmd1.Connection = Cn Da1.Fill(Ds1, "TPersCertifs") Dt1 = Ds1.Tables("TPersCertifs") DGCertifs.DataSource = Ds1 DGCertifs.DataMember = "TPersCertifs" Label1.Text = Dt1.Rows.Count Cn.Close() End Sub
Si ta DataTable est la DataSource de ton DGV alors supprimer une ligne de ton DGV met à jour ta DataTable.
Et si ta DataTable est lié à un DataAdapter alors tu n'auras plus qu'à lancer DbDataAdapter.Update()
DbDataAdapter.Update, méthode (DataTable)
Appelle les instructions INSERT, UPDATE ou DELETE respectives pour chaque ligne insérée, mise à jour ou supprimée dans le DataTable
Ps : Regarde l'exemple de code VB sur cette page
Partager