IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

bizarrerie dans tri dans combobox? [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 27
    Par défaut bizarrerie dans tri dans combobox?
    bonjour a tous,

    je rencontre un probleme de tri dans une combobox, j'ai beau cherché, je ne trouve pas l'erreur ... pourtant je suis sure que j'ai le nez dessus

    voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
       Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            ' Chemin de l'éxécutable
            Dim exepath As String = Environment.GetCommandLineArgs()(0) ' Pour les WinForm, on peut aussi utiliser Application.ExecutablePath
            exedir = exepath.Substring(0, exepath.LastIndexOf("\")) ' Répertoire de l'executable
     
            ' remplie le ComboBox
            Mycommand.CommandText = "SELECT table_programmateur.id FROM table_programmateur"
            MyConnexion.Open()
            Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
            Do While myReader.Read()
                ComboBox1.Items.Add(myReader.GetString(0))
            Loop
            myReader.Close()
            MyConnexion.Close()
     
            'selectionne le premier element de la combobox
            ComboBox1.SelectedIndex = 0
        End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
       Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
            If ComboBox1.Text <> "System.Data.DataRowView" Then      ' charge le choix si on est pas au debut du form et que les valeurs sont définis
                Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & exedir & "\mabase.mdb;")
                Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
     
                Mycommand.CommandText = "SELECT value1,value2,value3 FROM table_programmateur WHERE id = '" & ComboBox1.Text & "'" 'retourne la valeur  correspondante a l'id choisi
                MyConnexion.Open()
                Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
                myReader.Read()
                TextBox1.Text = myReader.GetString(0) 'affecte la valeur au textbox correspondant
                TextBox2.Text = myReader.GetString(1)
                TextBox3.Text = myReader.GetString(2)
                myReader.Close()
                MyConnexion.Close()
            End If
        End Sub
    une copie de ma table


    lorsque j'execute la requete de chargement (au debut du form) directement dans la table, j'ai bien les valeurs dans l'ordre de la table


    pourtant dans le form,ca melange tout


    j'ai pas l'impression qu'il y'a des caracteres cachés...

    bizarrement j'ai une autre combobox et j'utilise la meme methode et dans le 2eme combobox , ca marche
    Images attachées Images attachées    

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Bonjour,

    met un order by dans ta requête et ça règlera probablement le problème

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 27
    Par défaut
    effectivement en rajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY table_programmateur.id ASC
    dans la requete fonctionne bien

    néanmoins j'aurai aimé comprendre pourquoi sans, il n'affiche pas les valeurs dans l'ordre de la table

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par sniper59 Voir le message
    néanmoins j'aurai aimé comprendre pourquoi sans, il n'affiche pas les valeurs dans l'ordre de la table
    Parce que si tu ne mets pas de clause ORDER BY, l'ordre est indéterminé, les résultats peuvent arriver dans n'importe quel ordre

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 27
    Par défaut
    a bon ...

    je pensais que c'est obligatoirement dans l'ordre de la base

    merci du renseignement

  6. #6
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Les données dans une base de données ne sont pas ordonnées.

    On ne peut donc pas dure "dans l'ordre de la base".

    Virtuellement, un select sans order by pourrait ramener les lignes dans un ordre différent à chaque lancement.
    Dans la pratique, parceque les mécanismes de lecture dans les tables (index, ordonnancement physique des données dans le le fichier, etc.) font que l'ordre est généralement toujours le même. Mais il ne faut jamais s'y fier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Filtre & tri de combobox dans un userform
    Par iFred dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/02/2013, 20h24
  2. Tri dans la combobox d'un attribut relationnel
    Par logari dans le forum W4 Express
    Réponses: 2
    Dernier message: 12/10/2011, 19h12
  3. [XL-2000] Tri dans une ComboBox
    Par cobra38 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/12/2010, 11h25
  4. [vba] e-03 celulles trié dans combobox?
    Par lebison dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2008, 19h43
  5. [C#] tri dans un combobox
    Par cortex024 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/12/2005, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo