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 :

Probleme liste déroulante


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 81
    Points : 79
    Points
    79
    Par défaut Probleme liste déroulante
    Bonjour
    J'essaie de créer une liste déroulante en mettant un première valeur à blanc.
    J'ai trouvé des codes mais je n'arrive pas à les faire marcher. J'utilise vb.net + linq. Je suis totalement débutant dans les deux languages.
    Pouvez vous m'aider?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            Dim TblCiv = New Civilite 
           ' ma liste déroulante
            With Me.cbx_Civilite 
               ' requete permettant de créer la donnée vide
                Dim req2 = From Civilite In TblCiv.Civilite Select NumAuto = Guid.Empty, Civilite = "" 
               ' requete recuperant les données de ma table
                Dim req = (From Civilite In TblCiv.Civilite Select ID = TblCiv.NumAuto, Civilite = TblCiv.Civilite).ToList
     
                req.Insert(0, (req2.FirstOrDefault))    ' l'erreur est à ce niveau
                .DataSource = req
                .DisplayMember = "Civilite"
                .ValueMember = "NumAuto"
            End With
    Et j'ai droit à l'erreur suivante :
    Impossible de convertir une valeur de type '<type anonyme> (ligne 18)' en '<type anonyme> (ligne 19)'.
    Je n'arrive pas à la comprendre.
    Merci de votre aide

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 174
    Points : 25 115
    Points
    25 115
    Par défaut
    bah il vaudrait mieux apprendre les 2 langages avant de coder

    l'erreur c'est qu'un type anonyme n'est créé implicitement qu'une fois et est unique
    quand un autre type anonyme a les même propriétés je ne suis même pas sur qu'ils sont au final du même type, alors dans ton cas avec des noms différent ce ne sont pas les même types

    tu n'as pas typé req2 et req donc tu ne dois même pas savoir ce qu'ils sont, des ienumerable ou iequeryable of le type anonyme utilisé, et comme dit précément les 2 collections de sont pas sur le même type
    dans une collection de A on ne peut pas insérer des élement de type B

    donc soit tu type tout ca comme il faut, soit tu fais une classe
    quand on laisse le compilateur tout deviner, ca n'est pas forcément clair pour le développeur néophyte, il faut donc typer pour comprendre ce qu'on fait

    j'espère que tu comprends ce que j'ai écris car j'ai du mal à exprimer le truc

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 81
    Points : 79
    Points
    79
    Par défaut
    En fait le VB, je le connais, mais je suis en train de me remettre un peu à la page et j'avoue que je dérouille pas mal.
    Tu connaîtrais un bon bouquin traitement du vb.net?

    Car j'avoue que je suis un peu perdu et en plus je me rajoute une difficulté avec linq lol

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 174
    Points : 25 115
    Points
    25 115
    Par défaut
    moi pour commencer j'ai lu tout ca :
    http://plasserre.developpez.com/cours/vb-net/

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 81
    Points : 79
    Points
    79
    Par défaut
    Merci pour ton aide.
    Mais je n'y arrive tjrs pas pffff
    J'arrive à créer une requête simple pour la combobox.
    Je n'arrive tjrs pas à mettre la première ligne de mon choix.
    J'aimerai mettre en première ligne la req2. Aurais tu un indice à me donner ?

    pour faire ca

    choix ' mais choix n'est pas dans la bd
    toto
    toto1
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     Dim Conn = New LinqDbGestionEntrDataContext
     
            With Me.cbx_Civilite
                Dim req2 As IEnumerable(Of Object) = From B In Conn.Civilite Select NumAuto = 0, Civilite = "Choix"
                Dim req As IEnumerable(Of Object) = From C In Conn.Civilite Select NumAuto = C.NumAuto, Civilite = C.Civilite
                ' cbx_Civilite.DataSource = req2.Union(req).ToList
                .DataSource = req
                .DisplayMember = "Civilite"
                .ValueMember = "NumAuto"
            End With

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 174
    Points : 25 115
    Points
    25 115
    Par défaut
    essaye select new with {NumAuto = 0, Civilite = "Choix"]
    et pareil pour l'autre
    si c'est toujours pas mieux (ce que je pense) il faudra faire :

    private/public class machin
    public property NumAuto as cequetuveux
    public property Civilite as string
    end class

    et faire new machin with{.numauto = 0, .civilite = "choix"}
    et pareil pour l'autre

    avec une classe le type sera le même dans les 2 collections et tu pourras les mixer

  7. #7
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 81
    Points : 79
    Points
    79
    Par défaut
    Je te remercie, j’essaierai ca.
    J'ai commencer à lire la doc de Lasserre. Je te jure ça me fait bizarre de tout jeter ce que j'avais appris et utilisé.
    Mais j'avoue que le .net est très passsionnant, et j'aimerai vraiment le maîtriser. Même si ca me semble presque impossible, tellement qu'il y a de chose !!!

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 174
    Points : 25 115
    Points
    25 115
    Par défaut
    je confirme que .net ca fait plaisir à utiliser, et ca vient vite, en 6 mois on sait déjà faire pas mal de chose
    bien entendu sur l'année suivante tu vas en apprendre encore plus et tes anciens code te sembleront très moyens

  9. #9
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 81
    Points : 79
    Points
    79
    Par défaut
    Merci ta solution marche nickel.
    Je vais plus me pencher sur les properties car ca m'a l'air tres puissant et très utile.

    je met la source en cas ou ca peut intéresser du monde

    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
     
    Public Class AjoutDonne 
        Public Property Id As Integer
        Public Property Test As String
    End Class
     
    Private Sub From_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
     
            'TODO: cette ligne de code charge les données dans la table 'CiviliteDataSet.Civilite'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            ' on va creer un dataset pour remplir la combox civilité
     
            '  
            Dim Conn = New LinqDbDataContext
            With Me.combobox1
     
                Dim req2 As IEnumerable(Of Object) = From B In Conn.Tab Select New AjoutDonne With {.Id = 0, .Test = "Choix"}
                Dim req As IEnumerable(Of Object) = From C In Conn.Tab Select New AjoutCivilite With {.Id = C.Id , .Test = C.Test }           
                .DataSource = req2.Union(req).ToList
                .DisplayMember = "Test "
                .ValueMember = "Id "
            End With
        End Sub

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

Discussions similaires

  1. [PostgreSQL] probleme liste déroulante $_POST['box'];
    Par caidoo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/04/2012, 12h22
  2. probleme liste déroulante avec 2 champs
    Par rob1son76 dans le forum IHM
    Réponses: 3
    Dernier message: 27/01/2010, 16h25
  3. probleme liste déroulante imbrique
    Par popofpopof dans le forum IHM
    Réponses: 10
    Dernier message: 18/08/2008, 14h55
  4. Réponses: 4
    Dernier message: 09/07/2008, 17h50
  5. [php] Probleme Liste déroulante
    Par marie4449 dans le forum Langage
    Réponses: 18
    Dernier message: 21/06/2006, 17h04

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