J'utilise un datagridview qui est alimenter par le code :
'cr=E9er adaptateur
Dim data_Adapter As New OleDbDataAdapter("Select * FROM
MA_TABLE", ObjetConnection)
'Mapper la table clients
data_Adapter.TableMappings.Add("Table", "MA_TABLE")
'remplir le dataset
utilisateur_DataSet =3D New DataSet
data_Adapter.Fill(utilisateur_DataSet)
'lier le contr=F4le =E0 la table
Me.DataUtilisateurs.DataSource =3D utilisateur_DataSet
Me.DataUtilisateurs.DataMember =3D "MA_TABLE"
De ce c=F4t=E9 aucun probl=E8me. Par contre, j'ai utilis=E9 la propri=E9t=
=E9
Columns(Collection) pour donner une nom de colonne "lisible". Le
probl=E8me est que le datagrid affiche mes colonnes vides plus les
colonnes de la table avec comme ent=EAte de colonne le nom du champ !
Comment dois-je faire pour afficher mes donn=E9es avec un ent=EAte de
colonne que je d=E9fini moi-m=EAme ??
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jérémy Jeanson
Bonjour Jacques,
En fait ton code approche semble présenter deux erreurs courante :
1) Tu as laissé la propriété AutoGenerateColumns sur sa valeur par défaut qui est True . Donc tu as tes colonnes + celles qui sont générés automatiquement. Il faut passer donc ajouter la ligne suivante à ton code Me.DataUtilisateurs.AutoGenerateColumns = False
2) Tu t'es certainement trompé de propriété en créant tes colonnes (inversion entre la valeur à binder et le titre de la colonne?)
Si tu ne veux pas changer l'ordre de tes colonnes, tu peux très bien laiser AutoGenerateColumns sur true et parcouri la collection de colonens autogénérées pour ne changer que leur entête...
En fait ton code approche semble présenter deux erreurs courante :
1) Tu as laissé la propriété AutoGenerateColumns sur sa valeur par
défaut qui est True . Donc tu as tes colonnes + celles qui sont
générés automatiquement.
Il faut passer donc ajouter la ligne suivante à ton code
Me.DataUtilisateurs.AutoGenerateColumns = False
2) Tu t'es certainement trompé de propriété en créant tes colonnes
(inversion entre la valeur à binder et le titre de la colonne?)
Si tu ne veux pas changer l'ordre de tes colonnes, tu peux très bien
laiser AutoGenerateColumns sur true et parcouri la collection de
colonens autogénérées pour ne changer que leur entête...
En fait ton code approche semble présenter deux erreurs courante :
1) Tu as laissé la propriété AutoGenerateColumns sur sa valeur par défaut qui est True . Donc tu as tes colonnes + celles qui sont générés automatiquement. Il faut passer donc ajouter la ligne suivante à ton code Me.DataUtilisateurs.AutoGenerateColumns = False
2) Tu t'es certainement trompé de propriété en créant tes colonnes (inversion entre la valeur à binder et le titre de la colonne?)
Si tu ne veux pas changer l'ordre de tes colonnes, tu peux très bien laiser AutoGenerateColumns sur true et parcouri la collection de colonens autogénérées pour ne changer que leur entête...
En fait ton code approche semble présenter deux erreurs courante :
1) Tu as laissé la propriété AutoGenerateColumns sur sa valeur par défaut qui est True . Donc tu as tes colonnes + celles qui sont générés automatiquement. Il faut passer donc ajouter la ligne suivante à ton code Me.DataUtilisateurs.AutoGenerateColumns = False
2) Tu t'es certainement trompé de propriété en créant tes colonne s (inversion entre la valeur à binder et le titre de la colonne?)
Si tu ne veux pas changer l'ordre de tes colonnes, tu peux très bien laiser AutoGenerateColumns sur true et parcouri la collection de colonens autogénérées pour ne changer que leur entête...
J'ai essayé Me.DataUtilisateurs.AutoGenerateColumns = False et effectivement dans ce cas il n'y a que mes colonnes qui apparaissent mais pas les valeurs !?
Jacques
On 18 fév, 02:28, Jérémy Jeanson <jeremy.jean...@free.fr> wrote:
Bonjour Jacques,
En fait ton code approche semble présenter deux erreurs courante :
1) Tu as laissé la propriété AutoGenerateColumns sur sa valeur par
défaut qui est True . Donc tu as tes colonnes + celles qui sont
générés automatiquement.
Il faut passer donc ajouter la ligne suivante à ton code
Me.DataUtilisateurs.AutoGenerateColumns = False
2) Tu t'es certainement trompé de propriété en créant tes colonne s
(inversion entre la valeur à binder et le titre de la colonne?)
Si tu ne veux pas changer l'ordre de tes colonnes, tu peux très bien
laiser AutoGenerateColumns sur true et parcouri la collection de
colonens autogénérées pour ne changer que leur entête...
J'ai essayé Me.DataUtilisateurs.AutoGenerateColumns = False et
effectivement dans ce cas il n'y a que mes colonnes qui apparaissent
mais pas les valeurs !?
En fait ton code approche semble présenter deux erreurs courante :
1) Tu as laissé la propriété AutoGenerateColumns sur sa valeur par défaut qui est True . Donc tu as tes colonnes + celles qui sont générés automatiquement. Il faut passer donc ajouter la ligne suivante à ton code Me.DataUtilisateurs.AutoGenerateColumns = False
2) Tu t'es certainement trompé de propriété en créant tes colonne s (inversion entre la valeur à binder et le titre de la colonne?)
Si tu ne veux pas changer l'ordre de tes colonnes, tu peux très bien laiser AutoGenerateColumns sur true et parcouri la collection de colonens autogénérées pour ne changer que leur entête...
J'ai essayé Me.DataUtilisateurs.AutoGenerateColumns = False et effectivement dans ce cas il n'y a que mes colonnes qui apparaissent mais pas les valeurs !?
Jacques
Jérémy Jeanson
Bonjours Jacques,
Peux tu nous indiquer le code utilisé pour créer tes colonnes?
Je n'ai pas de code qui crée les colonnes :-) J'ai résolu le problème autrement ... je ne sais pas si c'est une bonne façcon de faire ! Dans mon Selec j'ai défini le nom des champ NM as Nom ,etc. J'ai donc un affichage correcte du libéllé des colonnes. Voici le code complet : 'créer adaptateur Dim data_Adapter As New OleDbDataAdapter("Select ID_PERS, NM as Nom, PRM as [Prénom], NIVEAU as Niveau FROM tbl_PERS", ObjetConnection)
'Mapper la table clients data_Adapter.TableMappings.Add("Table", "tbl_Pass")
'remplir le dataset utilisateur_DataSet = New DataSet data_Adapter.Fill(utilisateur_DataSet)
'lier et 'configurer le datagridview With Me.DataUtilisateurs Me.DataUtilisateurs.AutoGenerateColumns = True
For columnIndex As Integer = 0 To (.ColumnCount - 1) If columnIndex = 0 Then .Columns(columnIndex).Visible = False 'colonne contenant l'index Else .Columns(columnIndex).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill End If
Next
End With
Si tu as des remarques sur mon code, n'hésite pas !! :-)
Merci
Jacques
On 18 fév, 09:22, Jérémy Jeanson <jeremy.jean...@free.fr> wrote:
Bonjours Jacques,
Peux tu nous indiquer le code utilisé pour créer tes colonnes?
Je n'ai pas de code qui crée les colonnes :-)
J'ai résolu le problème autrement ... je ne sais pas si c'est une
bonne façcon de faire ! Dans mon Selec j'ai défini le nom des champ NM
as Nom ,etc.
J'ai donc un affichage correcte du libéllé des colonnes. Voici le code
complet :
'créer adaptateur
Dim data_Adapter As New OleDbDataAdapter("Select ID_PERS, NM
as Nom, PRM as [Prénom], NIVEAU as Niveau FROM tbl_PERS",
ObjetConnection)
'Mapper la table clients
data_Adapter.TableMappings.Add("Table", "tbl_Pass")
'remplir le dataset
utilisateur_DataSet = New DataSet
data_Adapter.Fill(utilisateur_DataSet)
'lier et 'configurer le datagridview
With Me.DataUtilisateurs
Me.DataUtilisateurs.AutoGenerateColumns = True
For columnIndex As Integer = 0 To (.ColumnCount - 1)
If columnIndex = 0 Then
.Columns(columnIndex).Visible = False 'colonne
contenant l'index
Else
.Columns(columnIndex).AutoSizeMode =
DataGridViewAutoSizeColumnMode.Fill
End If
Next
End With
Si tu as des remarques sur mon code, n'hésite pas !! :-)
Je n'ai pas de code qui crée les colonnes :-) J'ai résolu le problème autrement ... je ne sais pas si c'est une bonne façcon de faire ! Dans mon Selec j'ai défini le nom des champ NM as Nom ,etc. J'ai donc un affichage correcte du libéllé des colonnes. Voici le code complet : 'créer adaptateur Dim data_Adapter As New OleDbDataAdapter("Select ID_PERS, NM as Nom, PRM as [Prénom], NIVEAU as Niveau FROM tbl_PERS", ObjetConnection)
'Mapper la table clients data_Adapter.TableMappings.Add("Table", "tbl_Pass")
'remplir le dataset utilisateur_DataSet = New DataSet data_Adapter.Fill(utilisateur_DataSet)
'lier et 'configurer le datagridview With Me.DataUtilisateurs Me.DataUtilisateurs.AutoGenerateColumns = True
For columnIndex As Integer = 0 To (.ColumnCount - 1) If columnIndex = 0 Then .Columns(columnIndex).Visible = False 'colonne contenant l'index Else .Columns(columnIndex).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill End If
Next
End With
Si tu as des remarques sur mon code, n'hésite pas !! :-)