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

ASP.NET Discussion :

Faire un tri dans une DataTable


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Faire un tri dans une DataTable
    Bonjour

    Je voudrais savoir s'il est possible de trier les enregistrement dans une datatable une fois qu'elle est chargée. Je sais que ça serais mieux de la faire dans la requête au niveau SQL, mais j'ai pas trop le choix et je dois trier une fois la DAtaTable chargée.

    Voilà mon code de chargement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim dtParagraphe As DataTable = New DManager("Datadev").RetournerTable("EXEC PARA_Get_Paragraphe_Detail " & Id_ParaDet)
    Donc là je monte une DataTable à partir d'une Procédure stockée en lui envoyant un parametre.

    Maintenant je voudrais faire une truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dtParagraphe.fonction de triage sur un champ contenu dans la DataTable
    Vous voyez ce que je voudrais faire ?

    Merci pour votre aide.

    PS : j'ai pas trouvé dans la MSDN.

  2. #2
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Salut,
    tu peut utiliser DefaultView de la DataTable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dtParagraphe.DefaultView.Sort = "Colonne1,Colonne2 desc, Colonne3";
    DataTable dt = dtParagraphe.DefaultView.ToTable();
    A+

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                Dim dt1 As DataTable = New DManager("Datadev").RetournerTable("EXEC PARA_Get_Paragraphe_Detail " & Id_ParaDet)
                dt1.DefaultView.Sort = "DateP DESC"
                Dim dtParagraphe As DataTable = dt1.DefaultView.ToTable()
    Et ça trie pas. DateP est le nom du chmap restitué par ma Proc Stock. En mettant DESC, je compte avoir le plus récent d'abords et ça fait pas ça.
    Dans le proc Stock le tri ce fait sur autre chose.

    Alors soit ce que tu propose marche C# mais pas en VB (cela serait étonnant), soit y a détail qui tue de planqué quelque part.

    Mais en plus, si je suis bien le raisonement on monte une DataTable que l'on déverse dans une autre, bialn j'ai deux DataTable en mémoire, c'est bien ça ?
    Faut que je pense à détruire la première juste aprés l'avoir déversée.

    Une autre idée peut être ?

  4. #4
    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 : 43
    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
    Par défaut
    Dans ta DataTable, ta colonne DateP est bien de type DateTime ? Parce que que si elle est de type string, ça trie la date par ordre alphabétique...

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Aprés vérification, c'est bien un champ DateTime, tout simple, sans transformation, ni formatage.

  6. #6
    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 : 43
    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
    Par défaut
    Essaie de créer une DataView sur cette table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim dv As New DataView(dt1, null, "DateP DESC", DataViewRowState.CurrentRows)
    Mais c'est bizarre que ça marche pas avec la DefaultView

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/11/2012, 14h48
  2. [AJAX] Ajax : faire "le tri" dans une réponse
    Par Soundboy39 dans le forum AJAX
    Réponses: 2
    Dernier message: 08/12/2011, 13h21
  3. [AC-2007] Faire un tri dans une requete et mettre un 0
    Par petchy dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 07/03/2010, 17h57
  4. Faire un tri dans une liste
    Par patmar83 dans le forum IHM
    Réponses: 5
    Dernier message: 17/12/2009, 08h37
  5. [PB 10.5] Faire un tri dans une datawindow
    Par lanageuse59 dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/03/2009, 17h03

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