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 :

Combobox et DataBinding [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 161
    Points : 86
    Points
    86
    Par défaut Combobox et DataBinding
    Bonjour,

    Je cherche a remplir une combobox en mod dropdown ou dropdownlist avec les valeur d'une table d'une base sql serveur express.

    Je créé un user control dans lequel je met un label "famille article" et une combobox qui devra comprend la liste des mes familles d'articles.

    Je clic sur la petite fleche du control et coche "utiliser des éléments liés aux données"

    J'ai créé auparavant un dataset qui comprend l'ensemble de mes tables de ma base (je ne sais pas si c'est bien ou pas).

    Voici les infos que j'ai renseigné ensuite dans le formulaire :
    - Source de données : TFAMILLEARTBinding (en gros ma table T_FAMILLE_ART de ma base présente dans mon DataSet)
    Afficher le membre : FamArt_Libelle (libellé dans ma table)
    membre Value : FamArt_Libelle (libellé dans ma table)
    Valeur séléctionée : TFAMILLEARTBindingSource - id_FamilleArt (id dans ma table)

    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    La création d'un user control pour regroupper ton combobox et ton label est une chouette idée, mais au début mieux vaut se concentrer sur d'autre point.

    Concernant ton combobox et les liaisons aux données (c'est un grand classique des emmerdes quand on commence).

    Il y a 2 grandes parties.

    1er partie
    L'affichage de la liste des choix. Pour ceci il te faut une datatable (T_FAMILLE_ART dans ton cas), une bindingsource avec comme datasource ta datatable. Tu mets ensuite cette bindingsource en tant que datasource de ton combobox. Tu mets ensuite la value member sur LA colonne identifiant de T_FAMILLE_ART. Tu mets la display member sur LA colonne qui est textuellement le plus explicite (cette dernière peut être une colonne calculée si tu veux faire une aggrégation de plusieurs colonnes).

    A ce moment la tu as ton combobox avec la liste de tes T_FAMILLE_ART.

    2eme partie:
    Récupération et initialisation de la T_FAMILLE_ART sélectionnée. C'est la propriété selectedvalue fait ce job. Si tu changes cette propriétés elle initialisera ton combobox sur la valeur correspondante (par l'identifiant). Lorsque tu lis cette valeur, elle t'indiqueras l'identifiant de l'élément actuellement sélectionné ou Nothing (pas d'élément ou un text à la main qui ne correspond pas à un élément de la liste). Tu dois utiliser cette propriété pour faire la liaison (binding) avec l'objet qui possèdent une clé étrangère de T_FAMILLE_ART.

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 161
    Points : 86
    Points
    86
    Par défaut
    Bonjour, merci pour ton aide mais ma liste reste vide.

    J'ai essayer avec une listbox et rien ne s'affiche, je te mets des images de ce que je fait ce soir.
    Je dois vraiment être mauvais LOL.

    Cordialement


    Edit :
    J'ai fait sur un autre projet et cela fonctionne très bien, je dois avoir quelque part un code qui bloque tout.

    Je vais fouiner.

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Vérifie que tu as bien rempli ta datatable aussi !

  5. #5
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 161
    Points : 86
    Points
    86
    Par défaut Suis bête
    Je craque complètement,

    J'ai refait du départ exactement comme pour mon projet vide où cela fonctionne très bien.

    Voici le fonctionnement de mon appli.

    J'ai une fenetre main qui et spliter en 2.
    Une première partie avec un menu en UserControl comprenant mon menu et une 2e partie avec un form qui accueil mes UserControl, 1 par menu, que j'appelle comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    p_contenu.Controls.Clear()
    CurrentForm = New uc_test
    CurrentForm.Dock = DockStyle.Fill
    p_contenu.Controls.Add(CurrentForm)
    Voici les infos sur ma combobox qui pourraient 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Partial Class uc_test
        Inherits System.Windows.Forms.UserControl
     
        'UserControl remplace la méthode Dispose pour nettoyer la liste des composants.
        <System.Diagnostics.DebuggerNonUserCode()> _
        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
            Try
                If disposing AndAlso components IsNot Nothing Then
                    components.Dispose()
                End If
            Finally
                MyBase.Dispose(disposing)
            End Try
        End Sub
     
        'Requise par le Concepteur Windows Form
        Private components As System.ComponentModel.IContainer
     
        'REMARQUE*: la procédure suivante est requise par le Concepteur Windows Form
        'Elle peut être modifiée à l'aide du Concepteur Windows Form.  
        'Ne la modifiez pas à l'aide de l'éditeur de code.
        <System.Diagnostics.DebuggerStepThrough()> _
        Private Sub InitializeComponent()
            Me.components = New System.ComponentModel.Container()
            Me.ComboBox1 = New System.Windows.Forms.ComboBox()
     
            Me.ComboBox1 = New System.Windows.Forms.ComboBox()
            Me.TFAMILLEARTBindingSource = New System.Windows.Forms.BindingSource(Me.components)
            Me.DevFactDataSet = New DevFact.DevFactDataSet()
            Me.T_FAMILLE_ARTTableAdapter = New DevFact.DevFactDataSetTableAdapters.T_FAMILLE_ARTTableAdapter()
            CType(Me.TFAMILLEARTBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
            CType(Me.DevFactDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SuspendLayout()
            '
            'ComboBox1
            '
            Me.ComboBox1.FormattingEnabled = True
            Me.ComboBox1.Location = New System.Drawing.Point(26, 186)
            Me.ComboBox1.Name = "ComboBox1"
            Me.ComboBox1.Size = New System.Drawing.Size(236, 21)
            Me.ComboBox1.TabIndex = 1
     
            Me.ComboBox1.DataSource = Me.TFAMILLEARTBindingSource
            Me.ComboBox1.DisplayMember = "FamArt_Libelle"
            Me.ComboBox1.ValueMember = "id_FamilleArt"
            '
            'TFAMILLEARTBindingSource
            '
            Me.TFAMILLEARTBindingSource.DataMember = "T_FAMILLE_ART"
            Me.TFAMILLEARTBindingSource.DataSource = Me.DevFactDataSet
            '
            'DevFactDataSet
            '
            Me.DevFactDataSet.DataSetName = "DevFactDataSet"
            Me.DevFactDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
            '
            'TextBox1
            '
            Me.TextBox1.Location = New System.Drawing.Point(46, 254)
            Me.TextBox1.Name = "TextBox1"
            Me.TextBox1.Size = New System.Drawing.Size(268, 20)
            Me.TextBox1.TabIndex = 2
            '
            'T_FAMILLE_ARTTableAdapter
            '
            Me.T_FAMILLE_ARTTableAdapter.ClearBeforeFill = True
            '
            'uc_test
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.Controls.Add(Me.ComboBox2)
            Me.Controls.Add(Me.TextBox1)
            Me.Controls.Add(Me.ComboBox1)
            Me.Controls.Add(Me.Label1)
            Me.Name = "uc_test"
            Me.Size = New System.Drawing.Size(486, 486)
     
            CType(Me.TFAMILLEARTBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
            CType(Me.DevFactDataSet, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)
            Me.PerformLayout()
     
        End Sub
        Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
        Friend WithEvents TFAMILLEARTBindingSource As System.Windows.Forms.BindingSource
        Friend WithEvents DevFactDataSet As DevFact.DevFactDataSet
        Friend WithEvents T_FAMILLE_ARTTableAdapter As DevFact.DevFactDataSetTableAdapters.T_FAMILLE_ARTTableAdapter
     
    End Class
    Dites moi si d'autres infos sont nécessaires.


    Edit :
    C'est bon j'ai trouvé, tu avais raison Sinople, si on met pas de gazole dans la voiture, elle avance pas.

    EN rajoutant le petit bout de code magique dans le load de mon UserControl, ça marche beaucoup mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.T_FAMILLE_ARTTableAdapter.Fill(Me.DevFactDataSet.T_FAMILLE_ART)
    Cela fonctionné dans mon autre projet car vu que je travaillais sur une form, elle se mettait automatiquement dans le load de ma form, mais là à moi de le rajouter.

    Merci pour tous.

    RESOLU

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

Discussions similaires

  1. Combobox Dropdown Databinding
    Par mohamed301084 dans le forum VB.NET
    Réponses: 1
    Dernier message: 01/07/2012, 13h08
  2. Utilisation des Combobox avec DataBinding ?
    Par mohamed301084 dans le forum VB.NET
    Réponses: 0
    Dernier message: 11/05/2011, 16h37
  3. ComboBox et DataBinding
    Par Tarteens dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/05/2008, 12h41
  4. Réponses: 5
    Dernier message: 29/11/2006, 21h10
  5. [C#] DataBindings, Combobox Probleme
    Par subzero82 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/11/2005, 14h54

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