none
Problème de rafraichissement de combobox lié a un dataset RRS feed

  • Discussion générale

  • Bonjour voila, j'ai un code qui à partir de deux tables charge deux combobox différentes, soit une par table à partir de bindingsource.
    Lorsque je fais appel pour la première fois au code, il n'y a aucun problème tout se charge et apparait, mais si je lance une deuxième fois mon code alors là j'ai le premier combobox qui se charge sans aucun problème, mais pour le deuxième c'est mystère et boule de gomme. En effet le combobox se charge bien, puisque je vois la première ligne qui s'affiche, mais à peine ais-je eut le temps de la voir s'afficher que tout redevient blanc et quand je déroule mon combobox, je vois bien qu'il a été chargé puisque plusieurs lignes apparaissent, mais elle sont toutes blanches comme si les valeurs étaient a null, mais par contre impossible de sélectionner une ligne.

    Est-ce un bug de vb.net ??? ou me manque t'il quelque chose dans mon code ???
    Franchement je sais pas trop quoi faire fasse à ce problème assez déconcertant, puisque comme je vous le dit, si j'utilise le code une fois tout fonctionne nikel.

            'on indique la requête à éxécuter
    strSql = "SELECT NumBeneficiaire, NomBeneficiaire, PrenomBeneficiaire, " & _
    "AdresseBeneficiaire + CAST(CPBeneficiaire AS varchar(5)) + VilleBeneficiaire as ligne_adresse_Bene, " & _
    "TelephoneBeneficiaire, Portablebeneficiaire " & _
    "From BENEFICIAIRES"
     
    'Dim strSql1 As String = "Select NumInt, NomInt, PrenomInt, VilleInt, TelFixeInt, TelPortInt from INTERVENANTE"
    Dim strSql1 As String = "Select * from INTERVENANTE"
     
    'on indique la table
    table = "INTERVENANTE"
    table1 = "BENEFICIAIRE"
     
    'on vide le dataset
    ObjetDataSet.Clear()
    ObjetDataSet1.Clear()
     
    'on éxécute la fonction pour se connecter à la base et éxécuter la requête
    BD.ExecReq(strSql, table, ObjetDataSet)
    BD.ExecReq(strSql1, table1, ObjetDataSet1)
     
    ObjetDataTable.Clear()
    ObjetDatatable1.Clear()
     
    'On crèe une datatable à partir du dataset
    ObjetDataTable = ObjetDataSet.Tables(table)
    ObjetDatatable1 = ObjetDataSet1.Tables(table1)
     
     
    'Dim nbligne As Integer = ObjetDataTable.Rows.Count
    'Dim nbligne1 As Integer = ObjetDatatable1.Rows.Count
     
    ' on lie le bindingsource à l'objet datatable
    BSIntervenante.DataSource = ObjetDatatable1
    BSBeneMission.DataSource = ObjetDataTable
     
    'on affecte les données au objets visuel
    'on remplie la combobox
    CMBNomREchInt.DataSource = BSIntervenante
    CMBNomREchInt.ValueMember = "NumInt"
    CMBNomREchInt.DisplayMember = "NomInt"
    'et on remplie tous les textbox
    LBLPrenomRechInt.DataBindings.Clear()
    LBLPrenomRechInt.DataBindings.Add(New System.Windows.Forms.Binding("Text", BSIntervenante, "PrenomInt", True))
    LBLVilleRechInt.DataBindings.Clear()
    LBLVilleRechInt.DataBindings.Add(New System.Windows.Forms.Binding("Text", BSIntervenante, "VilleInt", True))
    LBLFixeRechInt.DataBindings.Clear()
    LBLFixeRechInt.DataBindings.Add(New System.Windows.Forms.Binding("Text", BSIntervenante, "TelFixeInt", True))
    LBLPortRechInt.DataBindings.Clear()
    LBLPortRechInt.DataBindings.Add(New System.Windows.Forms.Binding("Text", BSIntervenante, "TelPortInt", True))
     
    'on remplie la combobox
    CMBNomRechBene.DataSource = BSBeneMission
    CMBNomRechBene.ValueMember = "NumBeneficiaire"
    CMBNomRechBene.DisplayMember = "NomBeneficiaire"
    'et on remplie tous les textbox
    LBLPrenomRechBene.DataBindings.Clear()
    LBLPrenomRechBene.DataBindings.Add(New System.Windows.Forms.Binding("Text", BSBeneMission, "PrenomBeneficiaire", True))
    LBLAdrRechBene.DataBindings.Clear()
    LBLAdrRechBene.DataBindings.Add(New System.Windows.Forms.Binding("Text", BSBeneMission, "ligne_adresse_Bene", True))
    LBLFixeRechBene.DataBindings.Clear()
    LBLFixeRechBene.DataBindings.Add(New System.Windows.Forms.Binding("Text", BSBeneMission, "TelephoneBeneficiaire", True))
    LBLPortRechBene.DataBindings.Clear()
    LBLPortRechBene.DataBindings.Add(New System.Windows.Forms.Binding("Text", BSBeneMission, "PortableBeneficiaire", True))
     

    Pour l'instant pour éviter ce problème, j'écris les données qui doivent aller dans mon combobox dans un fichier texte et ensuite je charge mon combobox à l'aide du fichier texte, mais du cou je n'ai pas de liaison avec mes labels et puis cette  méthode ne me plait pas trop car elle surcharge mon code.

    Si vous avez une solution je suis preneur car cela fait vraiment un moment que je bloque dessus et je désespère.

    D'avance merci pour l'aide que vous pourrez m'apporter

    @++
    dubidon


    jeudi 21 juin 2007 15:57