Bonjour,

Manquant de connaissance sur ce sujet, j'aurai besoin de vos informations :
Qu'est-il préférable dans le cas d'un oledbdatareader ou d'un odbcdatareader en terme de ressource et de temps d’exécution.

Dans le cas d'un boucle for de 0 à X:
Inclure les fermetures et ouvertures en dehors de la boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Ouvrir_connexion()
for 0 à X
Dim Commande As OleDbCommand = New OleDbCommand(Requete, Connexion)
dim rst as oledatareader = commande.executereader
 
while rst.read
[...]
end while
 
next
fermeture_connexion()
Ou inclure directement l'ouverture et la fermeture dans le for:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
for 0 à X
Ouvrir_connexion()
Dim Commande As OleDbCommand = New OleDbCommand(Requete, Connexion)
dim rst as oledatareader = commande.executereader
 
while rst.read
[...]
end while
fermeture_connexion()
next
Ou créer une connexion X dynamique et la fermé par le rst:
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
 
for 0 à X
dim rst as oledatareader 
Chargement_OleReader(requete,rst,new_connexion())
 
while rst.read
[...]
end while
rst.close
next
 
    Public Sub Chargement_OleReader(ByVal Requete As String, ByRef rst As OleDbDataReader, ByVal Connexion As OleDbConnection)
        Dim Commande As OleDbCommand = New OleDbCommand(Requete, Connexion)
        rst = Commande.ExecuteReader(CommandBehavior.CloseConnection)
    End Sub
Merci d'avance.

Ps: Ce code est à titre d'exemple, uniquement démonstratif.