Trier une DataTable selon deux criteres [Résolu]

cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention - 14 oct. 2005 à 11:55 - Dernière réponse : sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention
- 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 

8 réponses

Répondre au sujet
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 14 oct. 2005 à 12:34
+3
Utile
taDataTable.Select("1=1", "DATE ASC, NUMERO ASC")

Sébastien FERRAND
[MVP C#]
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de sebmafate
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 14 oct. 2005 à 12:03
0
Utile
taDataTable.Select("1=1", "DATE ASC")

Sébastien FERRAND
[MVP C#]
Commenter la réponse de sebmafate
cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention - 14 oct. 2005 à 12:31
0
Utile
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
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 14 oct. 2005 à 12:34
0
Utile
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
cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention - 14 oct. 2005 à 12:45
0
Utile
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
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 14 oct. 2005 à 12:54
0
Utile
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
cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention - 14 oct. 2005 à 13:07
0
Utile
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
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 14 oct. 2005 à 13:58
0
Utile
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.