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 :

problème de requete sql


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut problème de requete sql
    Bonjour,

    Je souhaite afficher les données d'une table contenant une colonne C remplie par des valeurs telles que : 1, 10, E1 , 2, F1
    j'aimerais bien que lors de l'affichage les données soient triées : 1, 2, 10,E1, F1
    mais la colonnes est varchar du coups, l'affichage se fait comme suit: 1, 10, ...

    merci pour l'aide

  2. #2
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Bonjour

    j'ai une proposition

    Si tu veux afficher ces données dans un datagridview tu peu ajouter une colonne cachée et tu la remplis par ces données sous format "00" et tu fait le tri par la nouvelle colonne

    valeurs de la nouvelle colonne = Format(tacolonne, "00")

    et le "1" devient "01"
    "2" devient "02"
    et le tri sera 01, 02, 10,E1 ...

    A+

  3. #3
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut
    merci pour ton aide mais si je n'affiche pas dans un datagrid, que faire?

  4. #4
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Vous pouvez modifier les valeurs de ta colonne en format "00" pour que les valeurs deviennent "01", "02" ,"10", "E1"

    par ce que pour le type varchar 11 > 2

  5. #5
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut
    vous parlez du format de la colonne au niveau de la base de données?
    je suis entrain d'utiliser easyphp je vais chercher comment définir un format pour les données . je ne sais pas comment le faire pour le moment.

  6. #6
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Sur quel type de BD vous travaillez ?

    si acces, j'ai une autre proposition

    vous pouvez trier les données par la requette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT  TaColonne
    FROM Table1
    order by  Format(TaColonne,"00")

  7. #7
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut
    je peux faire le formatage avec access mais malheureusement pour moi, j'utilise easyphp => mysql

  8. #8
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut
    j'ai testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT  TaColonne
    FROM Table1
    order by  Format(TaColonne,"00")
    mais cela donne comme même 1, 10, 2

  9. #9
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    ca fonctionne sur access mais sur mySql je ne coix pas .... la fonction Format a un autre role.

  10. #10
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    je ne connais pas trops sur MySQL

    tu peux tester


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT  TaColonne
    FROM Table1
    order by  LPAD(TaColonne,2,'0')

  11. #11
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Tu peux récupérer tes données sous forme de List, mettre les chiffres dans une list, les trier, mettre les lettres dans une autre, les trier, et recomposer les 2.

    Ca peut donner qqch comme :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
            Dim toto As List(Of String) = New List(Of String) From {"E1", "10", "2", "1", "F1"}
     
            'On récupère les chiffres et on trie par ordre croissant
            Dim listeChiffre = From s In toto _
             Where Int32.TryParse(s, 0) = True
             Select s
             Order By Int32.Parse(s)
     
            'On récupère les lettres et on trie par ordre alphabétique
            Dim listeLettre = From s In toto _
             Where Int32.TryParse(s, 0) = False
             Select s
             Order By s
     
            'On remet la liste à vide (.Clear() fait perdre les données de listeChiffre et listeLettre)
            toto = New List(Of String)
     
            'On rerempli avec nos 2 listes
            toto.AddRange(listeChiffre)
            toto.AddRange(listeLettre)
     
     
            For Each elem As String In toto
     
                MsgBox(elem) 'Retourne 1, 2, 10, E1, F1
     
            Next

    Je ne suis pas du tout expert en LinQ dont le code est sûrement optimisable, avis aux amateurs !

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

Discussions similaires

  1. Problème avec requete SQL/type NumAuto
    Par Mimisio dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/07/2007, 11h56
  2. problème lancement requete sql
    Par skanderb dans le forum JSF
    Réponses: 4
    Dernier message: 02/05/2007, 16h46
  3. [WD 11] problème de requete SQL-LIKE
    Par fabpeden dans le forum WinDev
    Réponses: 5
    Dernier message: 24/04/2007, 17h07
  4. problème de requete SQL et recherche
    Par franfr57 dans le forum ASP
    Réponses: 1
    Dernier message: 16/03/2006, 13h33
  5. [ACCESS][SQL] Problème avec requete SQL ...
    Par mpascolo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/11/2005, 10h54

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