Charger un DataGridView Avec Plusieurs Tables.

Signaler
Messages postés
26
Date d'inscription
mardi 1 février 2011
Statut
Membre
Dernière intervention
2 mai 2013
-
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
-
Bonjour,
j'ai essaiyé de remplir mon DataGridView avec plusieurs tables, enfete j'ai une dataset qui a 8 tables indexée de 0 à 7, mais j'y arrive à afficher qu'une seul tables à la fois dans ma datagridview ==> MyDataGridView.DataSource = MyDataSet.Tables[0];
je peux pas mettre par exemple Tables[0,1,2,3,4,5,6,7] ou avec des points virgules :s !!
voilà j'aimerais bien que quelqu'un m'aide à résoudre ce problème et de pouvoir afficher les 8 tables dans le meme datagridview .

NB : j'ai bien chercher sur le net ainsi que sur le forum mais j'ai pas trouvé grand chose !

parceque dans mon dataset je charge un fichier XML qui se dévise automatiquement en 8 tables.

Merci d'avance .

5 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Salut,

tes 8 tables ont exactement la même composition ?

ça aurait été un SGBD SQL je t'aurais conseillé de faire un UNION ALL de tes 8 requêtes, mais dans le cadre du XML je vais te proposer une solution "on the while" (ça veut rien dire, je sais ^^)

	// on init une nouvelle table à partir de la première
DataTable dtFinal = MyDataSet.Tables[0].Copy();
// on y fusionne toutes les autres
for (int i=1; i<MyDataSet.Tables.Count; i++)
dtFinal.Merge(MyDataSet.Tables[i]);
// on s'en sert comme source du DataGridView
MyDataGridView.DataSource = dtFinal;


Je n'ai pas testé ce code, et j'ai pas l'habitude d'utiliser ces objets. C'est écrit à la volée en me basant sur la MSDN
Messages postés
26
Date d'inscription
mardi 1 février 2011
Statut
Membre
Dernière intervention
2 mai 2013

merci pour ta proposition !
j'ai testée pour vérifier mais enfaite ca leve une exception de reférence à la ligne dtFinal.Merge(MyDataSet.Tables[i]), bref j'ai eu un autre probleme c'est la fusion de deux fichiers xml l'un à 3 tables et l'autre 8 -_-, alors pour ne pas perdre tro de temps j'ai choisie une solution un peux bette mais efficace ! j'ai creer une datable unique, et l'aide des boucles (spécial remerciement pour eux xD ), je suis partie chercher le contenue de chaque cellule des 11 tables ( des milliers de cellules ^^ ), et au meme temps les structurées dans ma nouvelle table comme si j'ai mis toute les tables l'une à coté de l'autre :p ! (inconvénien : beaucoup de temps pour parcourir tout, mais ca sera juste pour une seul fois alors ca va ).
j'ai choisi cette solution parceque les fichiers xml que j'ai sont mal structurés ,et leurs tables sont liées (clé primaire ....), alor vaut mieux récuperer les données bien organiser sans rien d'autre et surtout sans casse tête :) !
merci encore pour ton aide, et si ta d'autre proposition , ça sert toujours :).
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Je pense que tu ne peux pas fusionner plusieurs DataTable qui ont une structure différents, c'est ce qui doit lever l'exception. Et ça parait tout à fait normal.

D'où ma première question : tes 8 tables ont-elles exactement la même composition ? Condition sine qua non pour un affichage dans un même objet DataGridView.

Une autre solution serait de créer un UserControl qui affichera ce que tu veux, comme tu le veux.
Messages postés
26
Date d'inscription
mardi 1 février 2011
Statut
Membre
Dernière intervention
2 mai 2013

pas du tout mes tables non pas la même composition (le fichier est génerer automatiquement d'une plateforme alors je dois travailler avec :s ) et c'est pour ça que j'ai voulu tout organiser afin de pouvoir génerer un fichier xml propre et des fichiers textes par la suite pour des scripts !!
pour UserControl je veux pas tro me baser sur la form, la datagridview c'étais juste pour visualiser une seul table, parceque comme j'ai expliqué le but c'est pas l'affichage, c'étais juste pour visualiser tout, mais l'important que tout soit organiser afin que ça soit exploitable par la suite (meme en mode console sera nikel).
ce que j'ai c'est comme une mine qui contient ce que je veux mais il faudra bossé pour extraire ^^ et ranger !!
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
ah ok, tu cherches à loader les data de tes xml (au chargement de l'appli) pour ensuite pouvoir t'en servir (voir, manipuler, exporter sous différents formats), j'ai bon ? ^^

Pour juste afficher le contenu des tables, pour vérification, suffit de parcourir chacune des DataTable "à la mano" et d'afficher "à l'arrache", perso je me serais même pas posé la question des DataGridView à ta place :p

Enfin bon, le topic n'a donc plus vraiment de raison d'être, à part si tu veux quelques conseils pour structurer et rendre réutilisables les données loadées.