DataGridview et bases de données

cesarIST Messages postés 1 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 25 janvier 2008 - 25 janv. 2008 à 13:26
Gwendal3 Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 15 août 2011 - 26 févr. 2008 à 22:02
Bonjour à tous,
Je me suis mis au VB .Net (Visual Studio 2005), et j'ai une question qui peut être est bête... Si qqn peut m'aider se serait super cool
Je vous expose mon problème :

Imaginons une base de données ACCESS, avec une table SOCIETES et une table EMPLOYES.
Une relation existe entre ces deux tables et à une société peut correspondre n employés (normal).

Je voudrais arriver à afficher le résultat de cette relation dans une datagridview.
Les sociétés, sous forme de combobox, ce qui donnerait une datagridview du genre

Société       Nom    Prénom
Cb               Txt         Txt

Et Bien sûr, possibilité de saisie d'une nouvelle ligne avec intégration direct dans la BD (ce qui signifie combobox editable pour la société)

J'ai cherché sur MSDN. Je sais faire une datagrid reliée avec une table avec INSERT et UPDATE automatique mais dès qu'il ya des tables liées c'est plus dur...

Merci d'avance

2 réponses

Gwendal3 Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 15 août 2011
26 févr. 2008 à 21:10
Salut,

Le plus simple: Modifie ton interface => Sélection d'une société par combox dans le formulaire puis ajout d'employés à l'aide d'un datagridview.

Gwendal
0
Gwendal3 Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 15 août 2011
26 févr. 2008 à 22:02
re,

Je bossais sur mon projet lorsque je me suis rendu compte que j'avais fait ce que tu demandes
Les premières lignes correspondent à des classes qui me servent à charger les données. C'est le reste qui t'intéresse.

Bon courage

Gwendal

<hr size="2" width="100%" />Private Sub ParamdgvPermis(Optional ByVal strWhere As String = Nothing)

        ' Charger les tables dans le DataSet
        '  > Charger la table Tbl_PermisChauffeur
        clPermisChauffeur.ChargerTs(objDataSet, ClassePermisChauffeur.lstChargerSchemas.AvecSchemas, strWhere & "ORDER BY Tbl_PermisChauffeur.NPermis ASC")

        '  > Charger la table Tbl_TypePermis
        clTypePermis.ChargerTs(objDataSet, ClasseTypePermis.lstChargerSchemas.SansSchemas)

        ' > Charger le DataGridView avec le Dataset
        Me.dgvPermis.AutoGenerateColumns = False
        Me.dgvPermis.DataSource = objDataSet.Tables("TblPermisChauffeur")

        ' >> Colonne ID_TblPermisChauffeur
        Dim dgvIDTblPermisChauffeur As New DataGridViewTextBoxColumn
        Dim iIDTblPermisChauffeur As Integer
        iIDTblPermisChauffeur = Me.dgvPermis.Columns.Add(dgvIDTblPermisChauffeur)
        Me.dgvPermis.Columns(iIDTblPermisChauffeur).DataPropertyName = "ID_PermisChauffeur"
        Me.dgvPermis.Columns(iIDTblPermisChauffeur).Name = "ID_PermisChauffeur"
        Me.dgvPermis.Columns(iIDTblPermisChauffeur).Visible = False

        ' >> Colonne Type de Permis >>>>>>>>> COLONNE QUI T'INTERESSE <<<<<<<<<<<<<
        Dim dgvTypePermis As New DataGridViewComboBoxColumn()
        dgvTypePermis.DataSource = objDataSet.Tables("TblTypePermis")
        dgvTypePermis.DataPropertyName = "TypePermis"
        dgvTypePermis.DisplayMember = "TypePermis"
        dgvTypePermis.ValueMember = "ID_TypePermis"
        dgvTypePermis.Name = "Type de Permis"
        Dim iTypePermis As Integer
        iTypePermis = Me.dgvPermis.Columns.Add(dgvTypePermis)
        Me.dgvPermis.Columns(iTypePermis).DataPropertyName = "ID_TblTypePermis"
        Me.dgvPermis.Columns(iTypePermis).Name = "Type de Permis"
        Me.dgvPermis.Columns(iTypePermis).Width = 140

        ' >> Colonne Date d'obtention
        Dim dgvDateObtention As New CalendarColumn
        Dim iDateObtention As Integer
        iDateObtention = Me.dgvPermis.Columns.Add(dgvDateObtention)
        Me.dgvPermis.Columns(iDateObtention).DataPropertyName = "Date d'obtention"
        Me.dgvPermis.Columns(iDateObtention).Name = "Date d'Obtention"
        Me.dgvPermis.Columns(iDateObtention).Width = 140
        Me.dgvPermis.Columns(iDateObtention).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

        ' >> Colonne N° de Permis
        Dim dgvNPermis As New DataGridViewTextBoxColumn
        Dim iNPermis As Integer
        iNPermis = Me.dgvPermis.Columns.Add(dgvNPermis)
        Me.dgvPermis.Columns(iNPermis).DataPropertyName = "N° de Permis"
        Me.dgvPermis.Columns(iNPermis).Name = "N° de Permis"
        Me.dgvPermis.Columns(iNPermis).Width = 140

        ' >> Colonne ID_TblRepChauffeur, liaison avec une table répertoire
        Dim dgvIDTblRepChauffeur As New DataGridViewTextBoxColumn
        Dim iIDTblRepChauffeur As Integer
        iIDTblRepChauffeur = Me.dgvPermis.Columns.Add(dgvIDTblRepChauffeur)
        Me.dgvPermis.Columns(iIDTblRepChauffeur).DataPropertyName = "ID_TblRepChauffeur"
        Me.dgvPermis.Columns(iIDTblRepChauffeur).Name = "ID_TblRepChauffeur"
        Me.dgvPermis.Columns(iIDTblRepChauffeur).Visible = False

    End Sub
<hr size="2" width="100%" />
0
Rejoignez-nous