Bonjour,

J'ai une application qui génére un fichier Excel avec vraiment beaucoup de données dedans. Le problème c'est qu'il est super long à générer (plusieurs minutes), j'ai donc isolé la méthode et débogguer pour voir où cela ralentissais précisément et le bout de code qui ralentit c'est lui :

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
23
24
25
26
27
28
 
 
for (int i = 0; i < produitList.Count; i++)
        {
            int total = 0;
            for (int j = 0; j < filialeList.Count; j++)
            {
                ParameterCollection p1 = new ParameterCollection();
                p1.Add("Dossier", "165");
                p1.Add("Produit", produitList[i]);
                p1.Add("Filiale", filialeList[j]);
 
                dt = ***WebTools.SelectAppQuery("SELECT quantite FROM ProduitCommandeDoc WHERE (pk_idDossier = @Dossier) AND (pk_idProduit = @Produit) AND (pk_idSoc = @Filiale)", p1);
                if (dt.Rows.Count > 0)
                {
                    try
                    {
                        int qte = int.Parse(dt.Rows[0]["quantite"].ToString());
                        total += qte;
                    }
                    catch (Exception) { }
                    oExcelSheet.Cells[startRow + j + 1, i + 3] = dt.Rows[0]["quantite"].ToString();
                }
                else
                    oExcelSheet.Cells[startRow + j + 1, i + 3] = "0";
            }
            oExcelSheet.Cells[startRow + filialeList.Count + 1, i + 3] = total.ToString();
        }
Comment puis-je optimiser ce bout de code car jettant un oeil je vois mal comment il peut être codé autrement.