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

Windows Forms Discussion :

VB.Net - Comment synchroniser les lignes entre DataTable et DataGridView ?


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Points : 13
    Points
    13
    Par défaut VB.Net - Comment synchroniser les lignes entre DataTable et DataGridView ?
    Bonjour,

    J'ai un problème de synchronisation des lignes entre un DataTable et un DataGridView pour les opérations de suppression APRES un tri.

    Le DataGridView est alimenté par un DataTable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DataGridview1.datasource = DataTable1
    Le script de suppression:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ' SUPPRESSION
    Dim source As New DataTable
    source = Me.DataGridview1.DataSource
    Dim deleteLigne As DataRow = source.Rows.Item(Me.DataGridView1.CurrentRow.Index)
    source.Rows.Remove(deleteLigne)
    Ce script marche très bien tant que je ne clique pas sur l'en-tête d'une colonne de la DataGridView pour le trier. Sinon, la suppression marche un peu au harsard ! la ligne supprimée n'est pas forcément la ligne en cours (qui a le curseur).

    Comment faire pour que ça marche ?

    Merci beaucoup de vos aides.

    Cdt,

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim deleteLigne As DataRowView = Me.DataGridView1.CurrentRow.DataBoundItem
    deleteLigne.Row.Delete()
    Tu ne peux pas supposer que l'index dans le DataGridView sera le même que l'index dans la DataTable, car les données peuvent être triées différemment dans le DataGridView... Alors que si tu passes par DataBoundItem, ça te renvoie directement la ligne (ou plutôt une vue de la ligne, DataRowView)

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    C'est aussi simple que ça ?
    Et ça marche !

    Je suis déprimé ! ça fait des heures que je cherche à tripoter l'objet DataTable dans tous les sens car je croyais qu'une fois associée une source de données à un DataGridView on ne peut plus modifier ce dernier (d'ailleurs j'ai souvent des erreurs quand je tentais de modifier directement l'objet DataGridView).

    Merci beaucoup tomlev

    @+

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/03/2013, 15h31
  2. [VB.NET]Comment supprimer les lignes d'un datagridView
    Par vijeo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 01/09/2006, 17h54
  3. [VB.NET] Comment lister les ordinateurs d'un réseau
    Par Jan-t dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/03/2005, 08h44
  4. [VB.NET] Comment ecrire du code entre <title>
    Par ykane dans le forum ASP.NET
    Réponses: 5
    Dernier message: 10/05/2004, 16h58

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