En gros, voilà le code que j'utilise :

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
29
30
31
32
33
 
        Imports Microsoft.VisualBasic
        Imports System.Data.SqlClient
 
        Dim i As Integer = 0
 
        Dim oConnection As New SqlConnection("Paramètres de connexion")
        Dim oCommand As New SqlCommand
 
        Dim oReader As SqlDataReader
 
        oConnection.Open()
 
        With oCommand
            .Connection = oConnection
            .CommandType = Data.CommandType.StoredProcedure
            .CommandText = "Nom d'une procédure stockée"
            oReader = .ExecuteReader
        End With
 
        Response.Write("<table>")       
 
        While oReader.Read()
            Response.Write("<tr>")  
            For i = 0 To (oReader.FieldCount - 1)
                 Response.Write("<td>") 
                 Response.Write(oReader(i))
                 Response.Write("</td>") 
            Next
            Response.Write("</tr>") 
        End While
 
        Response.Write("</table>")
La procédure stockée est hyper simple (style : select * from tablenom) et j'ai testé sa rapidité dans SQL server 2005... Elle ne pose aucun problème. Le serveur est un bon lui aussi (pas de prob CPU ni ram ou autre) tout comme ma machine local. Il s'agit vraiment de ma façon de traiter l'affichage. J'ai l'intuition que c'est au niveau des boucles (2 boucles imbriquées -> pas bien ?).

En tout cas, ça a pour conséquence que pour moins de 7000 enregistrements ma page met plus de 1 minute à s'afficher !!!

Il doit certainement exister une façon plus rapide de traiter cela... Mais pour l'instant je ne la connais pas...

Si vous pouviez m'aider. Je vous en serais reconnaissant.

Merci d'avance.

Voilà