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

Linq Discussion :

[DataSet] Supprimer plusieurs lignes


Sujet :

Linq

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Par défaut [DataSet] Supprimer plusieurs lignes
    Bonjour,

    soit le code ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                var l_result = m_model.Customers.Where(i => i.name = "roger");
     
                foreach (DataRow l_customer in l_result)
                {
                    l_customer.Delete();
                }
    Dans ma table customer, il y a 3 "roger" et 1 "bernard"

    Lors du premier "l_customer.Delete()", j'ai une exception qui me dit que la suppression risque d'affecter la requête.

    Et effectivement, il ne supprime qu'une seule entrée.
    Il n'y a pas moyen de supprimer toutes les lignes correspondant d'un coup ?



    Question subsidiaire : certains codes trouvés sur le net font "l_result.ToList()", "l_res.First()" ou "l_result.Count()", moi je n'ai ni l'un ni l'autre. Est-ce normal ?

    Je suis sous framework .Net 3.5, VS 2008 express.

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Citation Envoyé par Harry_polin Voir le message
    Question subsidiaire : certains codes trouvés sur le net font "l_result.ToList()", "l_res.First()" ou "l_result.Count()", moi je n'ai ni l'un ni l'autre. Est-ce normal ?
    Les méthodes ne fonctionnent que sur des objets de type IEnumerable<T>.

    Tu peux faire une méthode d'extension pour supprimer automatiquement ce que tu veux.

  3. #3
    Membre éclairé
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Par défaut
    Concernant la question subsidiaire, apparemment il faut rajouter ceci:
    sinon ces fonctions n'apparaissent pas...

    Du coup pour résoudre la première question, j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                foreach (DataRow l_customer in l_result.ToArray())
                {
                    l_customer.Delete();
                }
    je ne sais pas si c'est la solution plus optimale. Peut-etre y a-t-il un mot clef linq pour supprimer les objets.

    J'ai vu aussi sur internet des personnes qui font :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_model.Customers.Remove(result)
    Mais là même avec le using cité ci-dessus je n'ai pas la méthode remove qui supprime plusieurs lignes à la fois.

    Si vous avez des idées...

  4. #4
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Oops j'ai répondu à coté de la question

    Il n'y a pas RemoveAll ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Par défaut
    En Flash oui, y'a RemoveAll() dans un dataset.

    Là chez moi, j'ai aucune méthode que je connaisse permettant de supprimer en un seul coup plusieurs lignes d'une table.

  6. #6
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Tu peux faire ta propre méthode RemoveAll avec une méthode d'extension.

Discussions similaires

  1. Supprimer plusieurs lignes avec VBA
    Par Nounours1 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/03/2008, 11h50
  2. Supprimé plusieurs ligne?
    Par skorpio dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 12/07/2007, 09h33
  3. VBA supprimer plusieur ligne excel
    Par morgan47 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/06/2006, 20h56
  4. [querydataset] supprimer plusieurs lignes
    Par doudine dans le forum JBuilder
    Réponses: 5
    Dernier message: 21/10/2005, 13h21
  5. Supprimer plusieurs lignes d'un DBGrid via Popupmenu?
    Par BVK dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/12/2004, 11h27

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