Problème UTILISATION "ORDER BY" en c#

Signaler
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
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

Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
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...
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
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 ?
Messages postés
46
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
12 septembre 2013
1
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.
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Ce n'est pas une astuce, c'est le fonctionnement normal et adéquat ;)
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
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é. -