Bonjour à tous,

Je pars sur un nouveau projet web en ASP .Net et j'avais une question.
Pour créer des fonctions d’exécution de requête SQL (sur un SQL Server en réseau), du style récupérer un SELECT dans un SqlDataReader, exécuter un UPDATE, ...

Jusqu'à maintenant j'utilisais un Module avec mes différentes fonctions. Par exemple
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
 
    Public Function GetReader(ByVal pRequeteSQL As String) As SqlDataReader
        Dim vConn As New SqlConnection("MaChaineDeConn")
        vConn.Open()
 
        Using vCommande As New SqlCommand(pRequeteSQL, vConn)
            Return vCommande.ExecuteReader(Data.CommandBehavior.CloseConnection)
        End Using
    End Function
 
    Public Sub ExecuteSQL(ByVal pRequeteSQL As String)
        Using vConnSQL As SqlConnection = New SqlConnection("MaChaineDeConn")
            vConnSQL.Open()
 
            Using vCdeSQL As SqlCommand = New SqlCommand(pRequeteSQL, vConnSQL)
                vCdeSQL.ExecuteNonQuery()
            End Using
        End Using
    End Sub
Ainsi j'ouvre et je ferme la connexion a chaque exécution de requête. Il peut donc y avoir plusieurs ouvertures/fermetures de base sur un même Page_Load.

Ou est-il mieux d'utiliser un Classe ? En ouvrant la connexion dans le New() et exécutant les différentes requêtes avec donc la même connexion, puis en fermant dans le Dispose().
Ainsi une seule connexion base pour plusieurs requêtes sur un même Page_Load.

Quel est la meilleure solution ?

Merci d'avance