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

Windows Forms Discussion :

[C# 2.0] Problème de conversion de type


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut [C# 2.0] Problème de conversion de type
    Bonjour amis dévelopeurs,
    J'ai une erreur bizare:
    "Impossible d'effectuer un cast d'un objet de type 'System.Data.DataRowView' en type 'System.IConvertible"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int PartyId = Convert.ToInt32(comboBox3.SelectedValue);
    int DrinkId = Convert.ToInt32(listBox3.SelectedValue);
    C'est bizare car la première conversion provoque l'erreur, mais pas la deuxième.
    Quelqu'un à une idée?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut
    int.TryParse semble fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int PartyId = 0;  
    int.TryParse(comboBox3.SelectedText, out PartyId);
    int DrinkId = Convert.ToInt32(listBox3.SelectedValue);
    Mais ça n'explique pas l'erreur d'avant. Ca devrait toujours fonctionner ou ne jamais fonctionner. Bizare.

  3. #3
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Citation Envoyé par freerider1
    int.TryParse semble fonctionner
    Qu'entends-tu par là ? Tu veux dire qu'il n'y a plus d'exception ? Car si c'est ça attention, la méthode TryParse ne lève pas d'exceptions, elle renvoie juste true ou false en fonction du résultat de la conversion. Si celle-ci n'a pu se faire, la variable PartyId restera à 0.

    Il faut parfois se méfier des "semble fonctionner"

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut
    Merci StormimOn.
    Je savais qu'il y avait une valeur de retour, mais je ne l'ai pas testée car ça semblait fonctionner (paaaas bien). Mais ça fonctionnait car j'avais mis la valeur en dure dans l'appelle de la focntion.
    Donc je n'ai en fait pas progressé.
    Donc ma question reste entière, comment récupérer la valeur entière d'un élément sélectionné dans une listbox ou combobox?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut
    On va y arriver.
    Avec la propriété Text, ça fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int PartyId = Convert.ToInt32(comboBox3.Text); 
    int DrinkId = Convert.ToInt32(listBox3.Text);
    Je ne comprends pas bien la nuance entre Text et SelectedText?

  6. #6
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    selectedtext, c'est pas ce qui est surligné en bleu lorsque tu fait un clické déplacé sur le text ?

  7. #7
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Citation Envoyé par freerider1
    On va y arriver.
    Avec la propriété Text, ça fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int PartyId = Convert.ToInt32(comboBox3.Text); 
    int DrinkId = Convert.ToInt32(listBox3.Text);
    Je ne comprends pas bien la nuance entre Text et SelectedText?
    c'est pas SelectedText mais SelectedValue .
    SelectedValue est l'objet qui est sélectionné, ce qui dans ton cas veux dire (d'après le message d'erreur du premier post) que c'est une DataRowView qui est renvoyé. Or je ne vois pas comment on peux caster un DataRowView en int

    la propriété Text te renvoi le texte affiché.
    Tu vas le dire : "Comment ça se fait que j'ai bien ce que je veux d'afficher dans ma comboBox ?" Tout simplement parce que quand tu met un objet dans une ListBox ou une comboBox, il y a un appel à ToString de fait automatique.

    En en gros il ne faut pas que tu essai de convertir l'objet mais une des ces valeurs. Dans ton cas c'est la valeur qui renvoyé par le ToString mais tu pourrais te servir d'une autre valeur de ton objet.

    En espérant avoir été clair ....

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/10/2008, 16h40
  2. Problème de conversion de type de données
    Par ruzakruzak dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/06/2007, 10h51
  3. Problème de conversion de types
    Par Rayndell dans le forum C++
    Réponses: 2
    Dernier message: 25/05/2007, 10h45
  4. [WD10] Problème de conversion de type
    Par rphenix dans le forum WinDev
    Réponses: 2
    Dernier message: 15/01/2007, 14h22
  5. [Excel] Problème de conversion de type de données
    Par keiserjo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2006, 12h26

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