Trier une DataTable selon deux criteres [Résolu]

Messages postés
145
Date d'inscription
lundi 13 janvier 2003
Dernière intervention
27 décembre 2005
- - Dernière réponse : sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
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)
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
3
Merci
taDataTable.Select("1=1", "DATE ASC, NUMERO ASC")

Sébastien FERRAND
[MVP C#]

Merci sebmafate 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
0
Merci
taDataTable.Select("1=1", "DATE ASC")

Sébastien FERRAND
[MVP C#]
Commenter la réponse de sebmafate
Messages postés
145
Date d'inscription
lundi 13 janvier 2003
Dernière intervention
27 décembre 2005
0
Merci
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)
Commenter la réponse de cs_poullos
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
0
Merci
oui, le 1=1 c'est un hack pour dire que tu ne filtres pas.

Sébastien FERRAND
[MVP C#]
Commenter la réponse de sebmafate
Messages postés
145
Date d'inscription
lundi 13 janvier 2003
Dernière intervention
27 décembre 2005
0
Merci
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)
Commenter la réponse de cs_poullos
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
0
Merci
dans le pire des cas, tu ajoutes un "order by" dans la requête qui rempli cette datatable

Sébastien FERRAND
[MVP C#]
Commenter la réponse de sebmafate
Messages postés
145
Date d'inscription
lundi 13 janvier 2003
Dernière intervention
27 décembre 2005
0
Merci
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)
Commenter la réponse de cs_poullos
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
0
Merci
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#]
Commenter la réponse de sebmafate

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.