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

C# Discussion :

Group by sur Dataview ou Datatable


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Group by sur Dataview ou Datatable
    Bonjour

    Je ne suis pas tres fan de Linq mais je voudrais savoir s'il est possible de faire un Group By sur sue DataView ou une datatable ?

    L'objectif serait de faire un count des rows ayant la meme clef

    Je peux evidemment le faire avec un parcours simple mais je me demandais si Linq pouvait aider dans ce cas ci ?

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par olibara Voir le message
    Bonjour

    Je ne suis pas tres fan de Linq mais je voudrais savoir s'il est possible de faire un Group By sur sue DataView ou une datatable ?

    L'objectif serait de faire un count des rows ayant la meme clef

    Je peux evidemment le faire avec un parcours simple mais je me demandais si Linq pouvait aider dans ce cas ci ?
    Sur tout ce qui implémente IEnumerable<T> oui c'est possible.
    http://msdn.microsoft.com/fr-fr/library/bb669099.aspx

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut Nathanael

    Le lien que tu montre illustre un Order by
    Et franchement je trouve cette syntaxe bien complexe pour des choses que l'on peut faire tres simplement avec les proprietés RowFilter et Sort d'un DataView

    Mais ce que je voudrais faire c'est un Group By afin de compter des rows possedant des champs en double

    Et je commence a penser qu'un bete parcours en boucle avec un dictionnaire sera plus simple

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par olibara Voir le message
    Salut Nathanael

    Le lien que tu montre illustre un Order by
    Et franchement je trouve cette syntaxe bien complexe pour des choses que l'on peut faire tres simplement avec les proprietés RowFilter et Sort d'un DataView

    Mais ce que je voudrais faire c'est un Group By afin de compter des rows possedant des champs en double

    Et je commence a penser qu'un bete parcours en boucle avec un dictionnaire sera plus simple
    Certes mais le principe reste le même. Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDataTable.AsEnumerable().GroupBy(row=>row.Field<String>("mykey"))

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Certes mais le principe reste le même. Par exemple:
     
    myDataTable.AsEnumerable().GroupBy(row=>row.Field<String>("mykey"))

    Moui ca a l'ai tres joli, ca tient sur une ligne mais j'avoue que mes petits neuronnes branché sur un dictionnaire n'ont pas encore bien compris comment je récupere le résultat de cette formule magique et surtout comment je peux recuperer un count par group
    Cela dit ca compile et execute

    Si j'ai un peu de temps j'irai relire de la doc a ce sujet

    en slq

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from maTable group by 'mykey'
    Pour le moment je fais avec un dictionnaire !

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDataTable.AsEnumerable().GroupBy(row=>row.Field<String>("mykey"), (key,values)=>new {Key=key, Count=values.Count()}).ToDictionary(l=>l.Key,l=>l.Count);

Discussions similaires

  1. Un Group By sur une DataTable
    Par thibab dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/04/2012, 13h47
  2. [Debutant] GROUP BY sur les premiers caracteres d'un champ
    Par seb-astien dans le forum Langage SQL
    Réponses: 8
    Dernier message: 09/11/2004, 14h53
  3. faire un group by sur les différents niveau de code
    Par speed034 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/10/2004, 16h10
  4. Réponses: 9
    Dernier message: 17/01/2004, 10h51
  5. Group by sur resultat
    Par pointe dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/12/2003, 08h30

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