Bonjour,
J'ai créé un petit morceau de code afin de comparer deux datatables fortement typés et d'insérer dans le 1er tout ce qu'il y est pas, par rapport au 2nd.
Ce code fonctionne mais prend énormément de temps.
Comme vous pouvez le remarquer, ce code n'est pas très propre (break), et a l'inconvénient majeur de prendre un temps infini dès qu'on commence à passer des centaines de lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 DSC.HOFDataTable HOF = new DSC.HOFDataTable(); //datatable fortemment typé DSC.IMPOFDataTable IMPOF = new DSC.IMPOFDataTable(); //datatable fortemment typé DSC.IMPOFDataTable dt = new DSC.IMPOFDataTable(); //datatable temporaire (servira aux inserts) bool check = false; foreach (DSC.HOFRow DRHOF in HOF.Rows) //on parcourt les lignes de HOF { while (!check) { foreach (DSC.IMPOFRow DRIMPOF in IMPOF.Rows) { if (DRHOF["ORDNO"] == DRIMPOF["CODE_OF"]) //pour chaque ligne dans HOF on vérifie si léquivalent IMPOF existe (CODE_OF et ORDNO sont les clés primaires) { check = true; break; } } if (!check) //si check est true on continue et on passe à la ligne suivante dt.Rows.Add(DRHOF.ItemArray); //sinon, on ajoute la ligne au datatable temporaire } }
J'ai donc besoin d'aide afin de l'améliorer.
Merci aux courageux qui se pencheront sur le problème...
Partager