Problème UTILISATION "ORDER BY" en c#

Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 - 27 juil. 2012 à 14:25
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 31 juil. 2012 à 16:21
Bonjour,

J'ai un petit ( énorme ) soucis...
Je travail sur la création d'équipe de numéro 0 à 999.
Pour cela j'ai créé une table Equipe avec comme colonne "IDeqp" "Nomeqp" "Nom1" "Nom2" "Nom3" "Nom4"
A partir du programme j'arrive facilement a ajouter ou supprimer une équipe...

Mon problème est que lorsque j'essaye de ranger les équipes cela ne fonctionne pas et impossible de les mettre dans l'ordre...

Quelqu'un aurai une idée de comment trier toute la table de 0 à 999 ?

Voici le code de TRI que j'utilise :

public bool Reindex()
        {
                try
                {
                    SqlCeConnection SQLConn new SqlCeConnection("Data source " + FormPass.pathData);
                    SqlCeCommand command;
                    SQLConn.Open();

                    string cmd = "SELECT * FROM Equipes ORDER BY IDeqp ASC";
                    command = new SqlCeCommand(cmd,SQLConn);
                    command.ExecuteNonQuery();

                    command.Dispose();
                    SQLConn.Close();

                    return true;
                }
                catch (Exception exe)
                {
                    MessageBox.Show("Base de donnée introuvable. \n Erreur : " + exe);
                    return false;
                }
        }


PS : Pour information, en mode débug, le "r" est a "-1"...

7 réponses

Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
27 juil. 2012 à 14:28
0
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
27 juil. 2012 à 14:31
0
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
30 juil. 2012 à 11:00
Bien après avoir cherché, le tri ce fait... mais il n'es pas enregistrer !
C'est a dire que la commande est bien prise en compte, mais lorsqu'on ferme la table, sa ce remet en désordre...
J'aimerai savoir comment enregistrer le ORDER BY !

Merci d'avance...
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
31 juil. 2012 à 09:53
Salut,

beaucoup de chose à redire mais je vais faire simple : un "ORDER BY" ne s'enregistre pas. Soit tu utilises ce "ORDER BY" dans ta requête pour avoir un ordre précis, soit les enregistrements sont retournés dans l'ordre d'insertion. Et d'ailleurs "enregistrer un ORDER BY" n'a pas vraiment de sens ni d'utilité. Quel était ton objectif ?
0

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

Posez votre question
Woslike Messages postés 46 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 12 septembre 2013 1
31 juil. 2012 à 11:08
De ranger la table par ordre d'équipe... mais j'ai trouvé une autre solution, a chaque ouverture de la table je fais un BY ORDER ID.
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
31 juil. 2012 à 12:05
Ce n'est pas une astuce, c'est le fonctionnement normal et adéquat ;)
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
31 juil. 2012 à 16:21
Salut

Lorsque tu utilises une base de données SQL, tu utilises ce qu'on appelle un SGBD (SQL Server, MySQL, SQLite, Oracle...). SGBD signifie "Système de Gestion de Base de Données". Comme son nom l'indique, c'est lui qui gère ta base. C'est lui, par exemple, qui va définir dans quel ordre son enregistrés les éléments, et ce comme ça l'arrange.
La seule action que tu peux faire qui va influer sur l'ordre des données dans la base, c'est définir un ou plusieurs index, ce qui va aider les tris et les filtres sur certains champs (et encore, ce ne sera pas ordonné comme tu le souhaites, mais comme le SGBD le souhaite !)

Ensuite, lorsque tu fais une requête SELECT sur une table, tu dois forcément définir un ORDER BY, sauf dans 3 cas :
- Quand il n'y a qu'un seul résultat
- Quand tu ne t'intéresse pas du tout à l'ordre des données
- Quand tu souhaites gérer le tri du côté du client

Tu ne peux nullement garantir l'ordre dans lequel arriveront les données sans un ORDER BY explicite.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
Rejoignez-nous