Probleme de combobox dans un datagridview [Résolu]

Messages postés
14
Date d'inscription
vendredi 25 avril 2014
Statut
Membre
Dernière intervention
31 mars 2017
-
Bonjour,
J'ai une base de données access employe (Nom, Prenom, Sexe, Adresse). Je souhaite afficher cette bdd dans un datagridview avec la colonne sexe en combobox proposant Homme, Femme.

Le problème est que lorsque j'active l'importation des données, j'ai une erreur au niveau des données de la combobox.
Mon code est le suivant :

Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic
Public Class Form1
    Dim Connexion As New OleDb.OleDbConnection()
    Dim AdapTContact As OleDb.OleDbDataAdapter
    Dim DtSet As New DataSet()
    Dim Sql As String
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataGridView1.AutoGenerateColumns = False 'empeche la datagridview de créer les colonnes toutes seules

        Dim Nc As DataGridViewColumn

        DataGridView1.Columns.Add(New DataGridViewTextBoxColumn With {.Name = "Nom", .DataPropertyName = "Nom"})
        DataGridView1.Columns.Add(New DataGridViewTextBoxColumn With {.Name = "Prenom", .DataPropertyName = "Prenom"})

        'ajoute une colonne combobox avec les valeurs restreintes à l'énumération définie plus bas
        Nc = New DataGridViewComboBoxColumn With {.Name = "Sexe", .DataPropertyName = "Sexe"} ', .DataSource = [Enum].GetValues(GetType(Sexe))}
        DataGridView1.Columns.Add(Nc)

        DataGridView1.Columns.Add(New DataGridViewTextBoxColumn With {.Name = "Adresse", .DataPropertyName = "Adresse"})
    End Sub

    Public Enum Sexe 'énumération pour la combobox
        Homme = 0
        Femme = 1
    End Enum

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim connexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;data source = C:\Users\Philippe\Desktop\BDD2.accdb")

        Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM Employe", connexion)

        connexion.Open()

        AdapTContact = New OleDbDataAdapter(cmd)
        Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(AdapTContact)
        DtSet = New DataSet()
        AdapTContact.Fill(DtSet, "Employe")

        DataGridView1.DataSource = DtSet.Tables("Employe").DefaultView
        connexion.Close()
        connexion = Nothing
    End Sub
End Class


Merci de votre aide.
Afficher la suite 

1 réponse

Messages postés
13524
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
23 juillet 2019
289
0
Merci
Ajout de la coloration syntaxique, voir ici pour tes prochains message.
Commenter la réponse de Whismeril