Affichage des données dans un datagrid

cleonat Messages postés 5 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 10 mai 2008 - 5 mai 2008 à 11:28
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 10 mai 2008 à 16:48
Voilà mon problème, je remplis un datagrid avec les données récoltées par une stored procédure par l'intermédiaire d'un dataset.
Dans ma stored j'ai choisi un ordre particulier (ORDER Crit1 DESC, Crit2).
Lors de l'affichage du datagrid je me rend compte que les données sont triées par id et non comme je l'avais indiqué dans la stored.
Le problème ne se pose que sur le serveur de production qui est en asp2 et sqlServer2005 alors que le pc sur lequel j'ai développé l'application est en asp1 et sqlServer2000.
Quelqu'un aurait-il déjà eu ce problème ?
Merci

3 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 mai 2008 à 16:16
Bonjour,

As tu executé ta requete via sql management studio (ou autre) directement sur le server pour voir si l'ordre était OK ?

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
cleonat Messages postés 5 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 10 mai 2008
10 mai 2008 à 13:32
Salut,
J'ai fini par trouver la solution même si je ne comprends pas le pourquoi.
J'ai suivi ton conseil et j'ai exécuté la stored sur le serveur.
Pour remplir mon Dataset, j'exécutais une stored procédure en SELECT qui elle-même exécutait une VIEW.
La VIEW était triée "SELECT ... FROM ..... ORDER BY Crit1 DESC, Crit2 ASC" et sur mon portable en SQLServer2000 tout allait bien. Sur le Serveur de production en SQLServer2005, lors de l'exécution le tri ne s'effectue pas.
Il me faut donc dans la stored procedure faire un "SELECT ... FROM VIEW ORDER BY Crit1 DESC, Crit2 ASC"
Je ne comprend pas pourquoi mais bon ça marche maintenant.

Encore merci !
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
10 mai 2008 à 16:48
C'est normal, si tu spécifies pas l'ordre, le moteur SQL va prendre celui qui lui permet de récuperer les données les plus rapidement, il y a des différences au niveau des 2 moteurs et pour peu que les index soient différents alors le moteur va pas récuperer les données de la meme facon.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Rejoignez-nous