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 :

[VB.NET 2010] Datasets et suppression de lignes


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Bz
    Bz est déconnecté
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 176
    Par défaut [VB.NET 2010] Datasets et suppression de lignes
    plop,

    ptite question/remarque :
    J'ai passé pas mal de temps ce matin a résoudre un soucis qui concerne la suppression de lignes dans un dataset et la mise à jour des modifs dans la bdd.

    J'utilise un dataset fortement typé et je supprime la ligne dans une boucle via :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _dsListePersonneSession.tPersonne.RemovetPersonneRow(_dsListePersonneSession.tPersonne.Rows(i))
    Le dataset est bien modifié avec la (les) ligne en moins

    La commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _dsListePersonneSession.tPersonne.Select(Nothing, Nothing, DataViewRowState.Deleted)
    ne retourne aucune ligne modifiée, du coup pas d'update de bdd possible


    Par contre si je supprime les lignes via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _dsListePersonneSession.tPersonne.Rows(i).Delete()
    j'ai bien les lignes supprimées du dataset mais le select des lignes avec l'etat DataViewRowState.Deleted me renvoit bien quelque chose et du coup l'udate derriere fonctionne.

    curieux non ?

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Non c'est tout à fait normal.

    Le "remove" supprime l'enregistrement du dataset et par conséquence son affichage mais aussi son état par rapport à la base de donnée (donc impossible de "sauver" cette modification vers la BDD)

    Le "delete" change simplement l'état par rapport à la base de donnée, il est toujours dans la datatable (tu peux regarder avec un point d'arret dans le débuggeur). S'il n'est plus "affiché" c'est à cause du fonctionnement de la datatable qui ne "renvoie" pas les rows indiqués comme supprimé.

    La suppression effective du datarow invertient lors d'un .acceptchanges() (lui même appellé suite à un .update() d'un tableadapter en principe) grâce à la fonction .remove(). Mais ceci se fait de façon transparente dans le code autogénéré par VisualStudio.

    Il n'y a donc aucun interêt d'utiliser le remove sur des datarows dans le cadre d'une utilisation "standard" des datasets (par standard je signifie l'utilisation comme dans le tutorial de microsoft donc)

  3. #3
    Bz
    Bz est déconnecté
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 176
    Par défaut
    super comme explication, merci

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

Discussions similaires

  1. ajouter une ligne dans un fichier excel en vb.net 2010
    Par AlexLyon dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/08/2011, 20h35
  2. Réponses: 5
    Dernier message: 27/06/2011, 09h32
  3. Suppression de ligne dans dataSet via Datagridview
    Par papy75 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/05/2008, 20h30
  4. [VB.NET] Suppression de ligne d'un datagrid
    Par botanique dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/11/2005, 16h46
  5. [VB.NET] Suppression de ligne dans un DataTable
    Par seemax dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/05/2004, 14h19

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