Bonjour à tous

J'ai une page aspx et quand je clique sur un bouton, ça généère un fichier excel sur le serveur et après je donne le lien au client pour qu'il puisse le sauver sur son pc! Cela marche bien.

Mais quand j'ai commençé à faire plusieurs boucles imbriquées, à l'exécution, il faut 2 minutes si pas plus!!!! Est-ce normal??? Le résultat sort mais c'est très lent :-(

Voici mon code: (C'est cette partie là qui provoque la lenteur de l'exécution.)


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
 
            Dim k As Integer = 3, l As Integer = 0
            Dim i As Integer = 0, j As Integer = 0
            Dim Fct As New Fonctions
            For i = 1 To Fct.DaysInMonth(Mois - 1, Date.Now.Year)
                oSheet.Cells(1, i + 5) = Mois - 1 & "/" & i
            Next
 
            Dim TabType() As String = New String(16) {"LEG", "REC", "FER",
 "ANC", "RHS", "PRA", "PRP", "DEM", "SSS", "DIV", "MAL", "EDU", "COM",
 "MAR", "MOR", "MAT", "PAR"}
 
            For i = 0 To NbEmploye - 1
                For j = 0 To 16
                    oSheet.Cells(k, 1) = DSET.Logon(i).LastName & " " &
 DSET.Logon(i).FirstName
                    oSheet.Cells(k, 5) = TabType(j)
                    For l = 1 To Fct.DaysInMonth(Mois - 1, Date.Now.Year)
                        oSheet.Cells(k, l + 5) = "blabla"
                    Next
                    k = k + 1
                Next
            Next
Et je suis encore sensée écrire autre chose à la place de "blabla" --> aller dans mon DataSet et vérifier si la personne a prit congé ce jour là et écrire 1 dans la cellule si c'est le cas ou 0.5.


Deuxième question: pour le filtrage des données, je connais pas grand chose:
Ca doit être un genre à ça je pense:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Dim ROWArray As Array = DSET.JOURS.Select("Jour='01/02/2006'")
Je voudrais récupérer le record correspondant à:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SELECT J.partie_jour 
FROM JOURS J, CONGES C, Logon L
WHERE J.id_conge=C.ID AND C.Employe=L.ID
AND J.jour='01/01/2006' AND L.Log='EBEACOLQ01'

Merci