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

C# Discussion :

ComboBox.DataSource sur DataTable perso


Sujet :

C#

  1. #1
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut ComboBox.DataSource sur DataTable perso
    Bonjour,

    J'ai un ComboBox que j'aimerais remplir avec un DataTable créé à la mais et j'ai une FormatException lorsque le récupère SelectedValue. Voilà mon code de remplissage de DataTable :

    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
     
        private DataTable myDataTable;
    ...
     
    myDataTable= new DataTable("test");
    myDataTable.Columns.Add("message_number", System.Type.GetType("System.Int32"));
    myDataTable.Columns.Add("name", System.Type.GetType("System.String"));
     
    foreach (MyMessage l_message in messages)
          {
            DataRow l_newRow = myDataTable.NewRow();
            l_newRow["message_number"] = l_message.MessageNumber;
            l_newRow["name"] = l_message.Name;
            myDataTable.Rows.Add(l_newRow);
          }
     
          cbMyComboBox.DataSource = myDataTable;
          cbMyComboBox.ValueMember = "message_number";
          cbMyComboBox.DisplayMember = "name";
    Lorsque je fais cbTestParamKindTest.SelectedValue, L'exception FormatException est levée car SelectedValue est un DataRowView et non pas la valeur contenue dans "message_number".

    Merci de votre aide!

  2. #2
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    J'ai un peu avancé. En faisant de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cbMyComboBox.ValueMember = "message_number";
    cbMyComboBox.DisplayMember = "name";
    cbMyComboBox.DataSource = myDataTable;
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cbMyComboBox.DataSource = myDataTable;
    cbMyComboBox.ValueMember = "message_number";
    cbMyComboBox.DisplayMember = "name";
    Je n'ai plus ce problème. Par contre, la valeur affichée dans le ComboBox n'est pas la valeur du champ "name", mais la valeur ToString() de mon DataRow.

    Est-ce que quelque'un a une idée?

  3. #3
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Hum je viens de tester et aucun problèmes pour moi, dans mon ComboBox j'ai bien la valeur de name qui s'affiche.

    Bizarre.

  4. #4
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Oui en effet, très bizarre...

    J'ai supprimé mon ComboBox et je l'ai recréé, avec le ême code, et ça fonctionne . J'avais peutêtre fait une mauvaise manip dans les propriétés de ma ComboBox dans VisualStudio...

    enfin bref, le code que j'ai donnée ci-dessus fontionne très bien!

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

Discussions similaires

  1. Changement de datasource sur une combobox
    Par Shadam dans le forum VB.NET
    Réponses: 3
    Dernier message: 23/03/2011, 11h34
  2. Migration base access sur page perso
    Par fanfan91 dans le forum Access
    Réponses: 1
    Dernier message: 13/09/2005, 16h44
  3. [Control] Problemes de scintillement sur control perso
    Par Clorish dans le forum Composants VCL
    Réponses: 4
    Dernier message: 07/07/2005, 14h55
  4. [VB.NET] Instanciation objet (sur class perso.)
    Par DaxTaz dans le forum ASP.NET
    Réponses: 4
    Dernier message: 03/05/2004, 11h07
  5. ip fixeou nom de domaine sur ordi perso
    Par windob dans le forum Développement
    Réponses: 15
    Dernier message: 14/01/2004, 10h49

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