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 base de données


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    eph
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : eph
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Par défaut Combobox et base de données
    salut tous le monde
    1) j ai une base de donné comme (id, nom) je veux que le combo-box afficher la liste des noms mais prendre id pour inséré dans un autre tableau
    2) j'ai deux tableau avec relation idcat T1 CAT (idcat, cat) T2 SCAT (idscat , scat , idcat )je veux que mon combo affiche la liste colonne cat et l'autre combo affiche la liste colonne scat d’âpre la colonne cat

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Veuillez s'il vous plaît reformuler votre question et surtout nous montrer avec du code ce que vous avez tentés de faire (message d'erreur éventuellement ou problème bloquant).

    Merci.

  3. #3
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    Poste ton code ,on ne comprends rien à tes questions.
    Voir la Faq du forum pour l'utilisation du ComboBox avec Binding.
    Ce topic de la MSDN intitulé "Create a Windows Forms user control that supports lookup data binding" (creer un usercontrol qui supporte la recherche avec binding)
    https://docs.microsoft.com/en-us/vis...p-data-binding

    Tu peux aussi le faire par code ,sans l'aide du Concepteur VS,avec les ingrédients suivants :un DataSet,2 DataTables,2 Bindingsource,un Adapter et un DataRelation.

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    rebonjour


    Tu as aussi ce topic de la MSDN Lib fr intitulé "Créer des tables de recherche dans des applications Windows Forms" identique au topic déjà communiqué mais cette fois en français & c'est aussi un "pas-à-pas".

    https://docs.microsoft.com/fr-fr/vis...s?view=vs-2019

  5. #5
    Futur Membre du Club
    Homme Profil pro
    eph
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : eph
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Par défaut
    Citation Envoyé par MABROUKI Voir le message
    bonjour

    Poste ton code ,on ne comprends rien à tes questions.
    Voir la Faq du forum pour l'utilisation du ComboBox avec Binding.
    Ce topic de la MSDN intitulé "Create a Windows Forms user control that supports lookup data binding" (creer un usercontrol qui supporte la recherche avec binding)
    https://docs.microsoft.com/en-us/vis...p-data-binding

    Tu peux aussi le faire par code ,sans l'aide du Concepteur VS,avec les ingrédients suivants :un DataSet,2 DataTables,2 Bindingsource,un Adapter et un DataRelation.
    J ai un tableau WILAYA (numW, nom wilaya ) et un autre tableau DAIRA (id,nomdaira, numw)
    dans le form j ai combobox1 afiche les nom wilaya
    combobox2 affiche nom daira d'apré numW
    je veut insertion le (id) correspond le nom daira sélectionné et le nuW correspond le nom wilya + les autre textbox dans un autre Tableau T3
    Nom : vb.net.png
Affichages : 167
Taille : 8,8 Ko

  6. #6
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    Voici un exemple code qui utilise:
    - la table table parente "Wilayas"
    - la table table fille "Dairas"
    - la Relation "WilayaDaira"
    - une table auxiliaire à remplir "Electeurs" (ton 3 ème "tableau").
    - 2 bindingources :dairasBindingSource & electeursBindingSource
    - une seul ComboBox soit cboDaira car la table "Dairas" contient déjà la clé parente "NumWilaya"
    Le libelle "NomWilaya" et l'"IdWilaya" sont récupérés à partir de la table parente avec l'aide de la Relation.


    - le panneau de saisie ou Electeurs une fois renseigné avec les texboxes :BoxId ,BoxNom,BoxPrenom il suffit de cliquer sur le bouton btnAddElecteur.



    code .vb du form:

    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
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
     
    Public Class Form1
        Private wilayas As DataTable
        Private dairas As DataTable
        Private electeurs As DataTable
        Private DataSetLot As DataSet
        Private dairasBindingSource As BindingSource
        Private electeursBindingSource As BindingSource
        Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            DataSetLot = CreateTables()
     
            dairasBindingSource = New BindingSource
            dairasBindingSource.DataSource = DataSetLot
            dairasBindingSource.DataMember = "Dairas"
     
            Me.cboDaira.DataSource = dairasBindingSource
            Me.cboDaira.DisplayMember = "NomDaira"
            Me.cboDaira.ValueMember = "IdDaira"
            Me.LabelDairaNom.DataBindings.Add("Text", cboDaira, "Text", True, DataSourceUpdateMode.OnPropertyChanged)
     
            electeursBindingSource = New BindingSource
            electeursBindingSource.DataSource = DataSetLot.Tables("Electeurs")
            DgvElecteurs.DataSource = electeursBindingSource
     
            'saisie
            Me.BoxId.Text = "new electeur"
            Me.BoxNom.Text = "new nom"
            Me.BoxPrenom.Text = "new prenom"
            Me.LabelDairaId.DataBindings.Add("Text", cboDaira, "SelectedValue", True, DataSourceUpdateMode.OnPropertyChanged)
     
     
        End Sub
     
     
        Private Sub cboDaira_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cboDaira.SelectedIndexChanged
            If cboDaira.SelectedIndex < 0 Then Return
            Dim drv As DataRowView = CType(cboDaira.SelectedItem, DataRowView)
     
            Dim parentRow As DataRow = GetWilayaOfDaira(drv.Row)
            If parentRow IsNot Nothing Then
                Me.LabelWilayaId.Text = parentRow("IdWilaya")
                Me.LabelWilayaNom.Text = parentRow("NomWilaya")
            End If
     
     
        End Sub
        Public Function GetWilayaOfDaira(ByVal rowChild As DataRow) As DataRow
            Dim relWilayaDaira As DataRelation
            relWilayaDaira = rowChild.Table.DataSet.Relations(0)
            Return rowChild.GetParentRow(relWilayaDaira.RelationName)
        End Function
        Private Sub btnElecteur_Click(sender As System.Object, e As System.EventArgs) Handles btnAddElecteur.Click
            Dim idElecteur As Integer = -1
            If String.IsNullOrEmpty(BoxId.Text) Then Return
            Try
                idElecteur = Convert.ToInt32(BoxId.Text)
            Catch ex As Exception
                MessageBox.Show("enter a number")
                BoxId.Select(0, BoxId.TextLength)
                BoxId.Focus()
                Return
            End Try
            If idElecteur < 0 Then
                MessageBox.Show("enter a positive number")
                BoxId.Select(0, BoxId.TextLength)
                BoxId.Focus()
                Return
            End If
            If String.IsNullOrEmpty(BoxNom.Text) Or
            String.IsNullOrEmpty(BoxPrenom.Text) Then Return
     
            Dim drv As DataRowView = Me.electeursBindingSource.AddNew()
            drv.Row("Id") = idElecteur
            drv.Row("Nom") = BoxNom.Text
            drv.Row("Prenom") = BoxPrenom.Text
            drv.Row("NumWilaya") = LabelWilayaId.Text
            drv.Row("NumDaira") = LabelDairaId.Text
        End Sub
     
        Private Function CreateTables()
            wilayas = CreateTableParente()
            dairas = CreateTableEnfant()
            electeurs = CreateTableElecteur()
            Dim ds As New DataSet
            ds.Tables.Add(wilayas)
            ds.Tables.Add(dairas)
            ds.Tables.Add(electeurs)
     
            'Relation WilayaDaira
            Dim parentColumn As DataColumn =
             ds.Tables("Wilayas").Columns("IdWilaya")
            Dim childColumn As DataColumn =
                ds.Tables("Dairas").Columns("NumWilaya")
            Dim relWilayaDaira As DataRelation = New DataRelation("WilayaDaira", parentColumn, childColumn, False)
     
            ds.Relations.Add(relWilayaDaira)
            Return ds
        End Function
        Private Function CreateTableParente() As DataTable
            Dim dt As New DataTable("Wilayas")
            dt.Columns.Add("IdWilaya", GetType(String))
            dt.Columns.Add("NomWilaya", GetType(String))
            dt.Rows.Add(New Object() {"01", "Adrar"})
            dt.Rows.Add(New Object() {"02", "Chlef"})
            dt.Rows.Add(New Object() {"03", "Laghouat"})
            dt.Rows.Add(New Object() {"07", "Biskra"})
     
     
            Return dt
        End Function
        Private Function CreateTableEnfant() As DataTable
            Dim dt As New DataTable("Dairas")
            dt.Columns.Add("IdDaira", GetType(String))
            dt.Columns.Add("NomDaira", GetType(String))
            dt.Columns.Add("NumWilaya", GetType(String))
     
            'ajout dairas Adrar
            dt.Rows.Add(New Object() {"0101", "Adrar", "01"})
            dt.Rows.Add(New Object() {"0102", "Aoulef", "01"})
            dt.Rows.Add(New Object() {"0107", "Reggane", "01"})
            dt.Rows.Add(New Object() {"0108", "Timimoun", "01"})
     
     
            'ajout dairas Chlef
            dt.Rows.Add(New Object() {"0201", "Chlef", "02"})
            dt.Rows.Add(New Object() {"0208", "Oued Fodda", "02"})
            dt.Rows.Add(New Object() {"0212", "Tenes", "02"})
     
            'ajout dairas Laghouat
            dt.Rows.Add(New Object() {"0301", "Aflou", "03"})
            dt.Rows.Add(New Object() {"0308", "Laghouat", "03"})
            dt.Rows.Add(New Object() {"0310", "Sidi Makhlouf", "03"})
     
            'ajout dairas Bikra
            dt.Rows.Add(New Object() {"0701", "Biskra", "07"})
            dt.Rows.Add(New Object() {"0703", "El Kantara", "07"})
            dt.Rows.Add(New Object() {"0711", "Foughala", "07"})
     
     
     
            Return dt
        End Function
        Private Function CreateTableElecteur() As DataTable
            Dim dt As New DataTable("Electeurs")
            dt.Columns.Add("Id", GetType(Integer))
            dt.Columns.Add("Nom", GetType(String))
            dt.Columns.Add("Prenom", GetType(String))
            dt.Columns.Add("NumWilaya", GetType(String))
            dt.Columns.Add("NumDaira", GetType(String))
     
     
            Return dt
        End Function
     
     
     
    End Class


    bon code....

Discussions similaires

  1. combobox et Base de donnée
    Par chlours dans le forum C++
    Réponses: 2
    Dernier message: 10/03/2008, 10h12
  2. Probleme de Code pour combobox et base de donnée
    Par freko dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 03/11/2007, 14h37
  3. Problème combobox et base de données
    Par dubidon dans le forum VB.NET
    Réponses: 17
    Dernier message: 12/05/2007, 09h02
  4. ComboBox éditable <-> Base de données
    Par jacklafrip dans le forum MFC
    Réponses: 5
    Dernier message: 26/09/2006, 10h33
  5. [VBA-E]COMBOBOX, et base de données
    Par legend dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/02/2006, 13h22

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