Datagrid rempli par dataset, bizarre....

Résolu
domsig Messages postés 125 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 11 mai 2010 - 10 mai 2010 à 16:18
domsig Messages postés 125 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 11 mai 2010 - 11 mai 2010 à 15:19
bonjour

j'ai un datagrid que je souhaite remplir avec une table, puis une autre.
J'ai donc fait :

Private Sub btn_tp24_consulter_tables_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_tp24_consulter_tables.Click
Dim stTitre As String
Dim stTableConsultee As String

stTableConsultee = lst_tp24_tables.Text 'contient la liste des tables

ConnectString = "Server=" & My.Settings.serveur & ";Database=" & My.Settings.bases & ";User ID=" & user & ";Password=" & mot_de_passe & ";Trusted_Connection=false"
Dim Connection As New System.Data.SqlClient.SqlConnection(ConnectString)
Connection.Open()

Dim command As SqlCommand = New SqlCommand("select * from " & stTableConsultee, Connection)
command.CommandType = CommandType.Text

Dim GrilleDonneesAdapter As New SqlDataAdapter(command)
Dim GrilleDonneesDataSet As New DataSet()
GrilleDonneesAdapter.Fill(GrilleDonneesDataSet, stTableConsultee)
DGV_tp24.DataSource = GrilleDonneesDataSet.Tables(stTableConsultee) 'dgv_tp24 est le nom du datagrid


jusqu'ici tout va bien, ça fonctionne.

le problème est le suivant :
si j'affiche une 1ère table qui a une colonne "gestionnaire" en 6ème position, puis une 2ème qui a aussi une colonne "gestionnaire" en 15ème position par exemple, eh bien la colonne "gestionnaire" se met en 6ème position au lieu de se mettre en 15ème position, et avec les bonnes valeurs, celles de la 2ème table.

En fait s'il y a une colonne de même nom dans plusieurs tables, le datagrid s'emmêle les pinceaux...

Quelqu'un aurait-il une idée ?

merci d'avance

2 réponses

dp_favresa Messages postés 132 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 08:44
Bonjour,

Essaie de modifier ton SELECT
Au lieu de "select * ..." détermine chaque champ nécessaire et nomme les champs qui ont un même nom
Exemple: select champ1, champ2, champ3 as 'LeNomQueTuAsChoisi', champ4 ...
(dans ce cas champ3 existe aussi dans la 2ème table)

Cordiales salutations et bonne prog
dp
3
domsig Messages postés 125 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 15:19
bonjour, et merci de t'être intéressé(e?) à mon problème.
Ta solution doit fonctionner mais elle oblige quand on ouvre la table, à "scruter" tous les champs et à se demander si dans la table précédente il n'y avait pas déjà un champ du même nom, galèèèèèère....
j'ai continué à chercher et j'ai trouvé un truc tout c...
Juste après le
GrilleDonneesAdapter.Fill(GrilleDonneesDataSet, stTableConsultee)
il suffit de mettre grille.DataSource=""
et ensuite
grille.DataSource=le contenu du dataset.

Merci quand même de ton aide, j'espère que cette soluce pourra aider d'autres personnes....
3
Rejoignez-nous