IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

suppression d'une ligne selectionner d'un DG [Débutant]


Sujet :

VB.NET

  1. #1
    Membre très actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Par défaut suppression d'une ligne selectionner d'un DG
    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

  2. #2
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Dans ton event Bttn_Click :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                        For i As Integer = 0 To DGV.SelectedRows.Count -1
     
                            DGV.Rows.RemoveAt(i)
     
                        Next
    (Permet plusieurs suppression dans le cas de multi-sélection)

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Attention, avec
    Citation Envoyé par _Ez3kiel Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                        For i As Integer = 0 To DGV.SelectedRows.Count -1
    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)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            dgv.Rows.RemoveAt(dgv.CurrentRow.Index)
    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
    1
    2
    3
            For Each row As DataGridViewRow In dgv.SelectedRows
                dgv.Rows.Remove(row)
            Next
    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
    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.

  4. #4
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    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

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    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.

  6. #6
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    N'est-t-il pas gâté JetLibre ?

  7. #7
    Membre très actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Par défaut
    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

  8. #8
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    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

  9. #9
    Membre très actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Par défaut
    Bonjour
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JTABLE] suppression d'une ligne (prise de tete)
    Par uraxyd dans le forum Composants
    Réponses: 1
    Dernier message: 14/12/2005, 20h19
  2. Réponses: 3
    Dernier message: 19/09/2005, 14h20
  3. [Debutant][JTable] Suppression d'une ligne
    Par seiryujay dans le forum Composants
    Réponses: 7
    Dernier message: 03/08/2005, 18h15
  4. [JTable] problème après suppression d'une ligne
    Par fredo3500 dans le forum Composants
    Réponses: 7
    Dernier message: 17/03/2005, 11h01
  5. Réponses: 6
    Dernier message: 04/03/2004, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo