Trier une DataTable selon deux criteres

Résolu
cs_poullos Messages postés 145 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 27 décembre 2005 - 14 oct. 2005 à 11:55
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 14 oct. 2005 à 13:58
Bonjour,



J'ai une DataTable possédant plusieurs colonnes et je voudrais pouvoir la trier

selon deux colonnes, d'abord en fonction de la colonne DATE (de la plus

récente à la plus ancienne) puis en fonction de la colonne NUMERO (c'est un

int).



exemple :



J'ai



NUMERO DATE

01 12/06/2005

02 12/06/2005

04 10/09/2004

09 10/09/2005

03 10/09/2005

05 14/ 03/2003

12 14/03/2003

08 14/03/2003


et je veux obtenir



NUMERO DATE


03 10/09/2005




09 10/09/2005


01 12/06/2005


02 12/06/2005


04 10/09/2004


05 14/ 03/2003


08 14/03/2003


12 14/03/2003



J'ai besoin d'aide ...



Merci.


La brigade meurt mais ne se rend pas (Hisoka)

8 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
14 oct. 2005 à 12:34
taDataTable.Select("1=1", "DATE ASC, NUMERO ASC")

Sébastien FERRAND
[MVP C#]
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
14 oct. 2005 à 12:03
taDataTable.Select("1=1", "DATE ASC")

Sébastien FERRAND
[MVP C#]
0
cs_poullos Messages postés 145 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 27 décembre 2005 2
14 oct. 2005 à 12:31
C'est genial ca a l'air de marcher mais la ca ne trie que sur la DATE, le deuxieme

critere NUMERO n'est pas trié. En tout cas c'est déjà ca merci beaucoup seb ^^.



Par contre je suis obligé de reparcourir ma premiere table en entier en
faisant le select et d'en remplir une autre, pas tres elegant mais ca
fonctionne



Pare curiosité, que représente le "1=1" est juste une maniere de lui donner "vrai" ???

La brigade meurt mais ne se rend pas (Hisoka)
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
14 oct. 2005 à 12:34
oui, le 1=1 c'est un hack pour dire que tu ne filtres pas.

Sébastien FERRAND
[MVP C#]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_poullos Messages postés 145 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 27 décembre 2005 2
14 oct. 2005 à 12:45
Maintenant tout est nickel, le seul truc relou comme je disais c'est

qu'il faut parcourir toute la table avec le select comme tu me l'as donné

pour remplir une autre table vierge avec les mêmes champs. Mais bon

on va pas chipoter puisque ca marche ^^



Merci Merci


La brigade meurt mais ne se rend pas (Hisoka)
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
14 oct. 2005 à 12:54
dans le pire des cas, tu ajoutes un "order by" dans la requête qui rempli cette datatable

Sébastien FERRAND
[MVP C#]
0
cs_poullos Messages postés 145 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 27 décembre 2005 2
14 oct. 2005 à 13:07
Comment ca ? ca ne resoudra pas le probleme ...

En fait le select renvoi un DataRow[]

Moi je voulais faire matable = matable.select("1=1", DATE ASC, ...) mais les types

ne sont pas compatibles, c'est pour ca que je dois parcourir avec un
foreach ma table.select(...) et remplir les champs d'une autre table
similaire.



Enfin merci kan m^me :)

La brigade meurt mais ne se rend pas (Hisoka)
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
14 oct. 2005 à 13:58
tu es d'accord avec moi sur le fait que tu remplis ta datatable à partir d'une requête SQL.

donc dans cette requête (SelectCommand normalement) ajoute la directive SQL "Order by" pour trier tes enregistrements.

Sébastien FERRAND
[MVP C#]
0
Rejoignez-nous