VB.Net Entrer le l'info dans un Combobox [Résolu]

Messages postés
532
Date d'inscription
lundi 5 juin 2006
Dernière intervention
6 octobre 2012
- - Dernière réponse : Mayzz
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
- 18 sept. 2009 à 23:39
Bonjour à tous...

Je sais que ma question va sembler facile pour plusieurs personnes mais je n'y arrive pas...

J'ai deux combobox. Mon premier combobox contiendra les valeurs de mon deuxième combobox sans doublon.


Donc j'ai fait un code qui ressemble a cela... Mais je suis incapable d'ajouter des valeurs dans mon premier combobox. Des valeurs sont entrer dans mon deuxième combobox à partir d'un requête SQL.


Mond Deuxième combobox à ces valeurs
Auto
Auto
Auto
Bateau

Donc dans mon Premier combobox je veux voir que:
Auto
Bateau


J'ai toujours un erreur me disant que c'est impossible

For i = 0 To CopieCbxCirconscription.Items.Count - 1

If cbxCirconscription.Items.Contains(cbxCirconscription.Text) Then
'à compléter plus tard
Else

cbxCirconscription.Items.Add(CopieCbxCirconscription.Items.Item(i))

End If
Next


Merci de votre aide
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
3
Merci
Dim ConString As String = "Ta chaîne de connexion"
tu veux dire quoi par cela ???


Heu... Comment dire, ne pas connaitre les chaînes de connexion et travailler avec les données, c'est comme faire du pain sans savoir ce qu'est de la farine, :)

Je te conseille, vivement un petit tour sur ce site géniale ou tu y trouveras les rudiments des connexion aux données via ADO.Net. =>> http://plasserre.developpez.com/cours/vb-net/?page=bases-donnees1

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Mayzz
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Dernière intervention
13 décembre 2009
0
Merci
Salut,

Pourquoi ne pas faire :
For i As Integer = 0 To CopieCbxCirconscription.Items.Count - 1 
  If Not cbxCirconscription.Items.Contains(CopieCbxCirconscription.Items.Item(i)) Then 
    cbxCirconscription.Items.Add(CopieCbxCirconscription.Items.Item(i)) 
  End If
Next i


Juste une question : pourquoi ce system de deux combo ? En as-tu besoin par la suite ou est-ce pour avoir la liste avec éléments uniques ?
Commenter la réponse de cs_Ayr
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
0
Merci
Salut,

A mon avis tu devrais gérer cela par code, faire une requête SQL qui va trier les éléments de ta requêtes pour les ajouter à Ton combo.

Ex :

    Private Sub FillcbxCirconscription()
      
        cbxCirconscription.Items.Clear
 
        Dim ConString As String = "Ta chaîne de connexion"
        Dim SqlConnex As New SqlClient.SqlConnection(ConString)

        Try
            SqlConnex.Open()
            'Ici ta requête qui va récupérer les valeurs de la colonnne de ta table.
            'On va appler celui-ci "Type", c'est ton fameux champ contenant Auto, Bateau etc...    
            Dim QueryString As String = "SELECT Type FROM MaTable"
            'Instancie un TableAdapter
            Dim Adapter As New SqlClient.SqlDataAdapter(QueryString, SqlConnex)
            'Instancie une DataTable
            Dim Table As New DataTable
            'Rempli la Table
            Adapter.Fill(Table)

            For Each Row As DataRow In Table.Rows
                'Ici le même principe que vu plus haut, sauf qu'avec ce code il n'est pas nécéssaire d'avoir 2 combos.
                'Attention, ici dans Row!Type.ToString "Type" est le nom du champ de ta table, il te faudra le remplacer.  
                If Not cbxCirconscription.Items.Contains(Row!Type.ToString) Then
                    cbxCirconscription.Items.Add(Row!Type.ToString)
                End If
            Next

        Catch ex As SqlClient.SqlException
            MessageBox.Show(ex.Message, "Erreur de transact SQL", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

    End Sub


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Dernière intervention
13 décembre 2009
0
Merci
Voilà, par exemple

Ou bien, toujours dans le cas ou la base de données est fournit par SQLServer car System.Data.SQLClient est dédié à SQLServer je crois :

Private Sub FillcbxCirconscription()
  cbxCirconscription.Items.Clear
  Dim ConString As String = "Ta chaîne de connexion"
  Dim SqlConnex As New SqlClient.SqlConnection(ConString)
  Try
    SqlConnex.Open()
    'Ici ta requête qui va récupérer les valeurs uniques de la colonnne de ta table.
    'On va appeler celui-ci "Type", c'est ton fameux champ contenant Auto, Bateau etc...    
    Dim QueryString As String = "SELECT DISTINCT Type FROM MaTable"
    'Instancie un SQLCommand
    Dim Command As New SqlClient.SqlCommand(QueryString, SqlConnex)
    'Création d'un DataReader
    Dim DataReader As SqlClient.SqlDataReader = Command.ExecuteReader()
    'Rempli le combo
    While DataReader.Read()
      cbxCirconscription.Items.Add(DataReader.Item("Type").ToString())
    End While
    DataReader.Close()
    Command.Dispose()
  Catch ex As SqlClient.SqlException
    MessageBox.Show(ex.Message, "Erreur de transact SQL", MessageBoxButtons.OK, MessageBoxIcon.Error)
  Finally
    SqlConnex.Close()
  End Try
End Sub
Commenter la réponse de cs_Ayr
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
0
Merci
Oui, le DataReader, en effet , beaucoup plus adéquate ici


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Dernière intervention
6 octobre 2012
0
Merci
Bonjour à vous deux...

Ayr : Je suis avec ADO.Net et mon fichier est un fichier Access...

J'ai essayé quelque truc mais je n'y arrive pas...

et...

Dim ConString As String = "Ta chaîne de connexion"
tu veux dire quoi par cela ???

merci
Commenter la réponse de cs_MagDix

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.