fduchamp
Messages postés13Date d'inscriptionjeudi 27 mars 2003StatutMembreDernière intervention10 avril 2006 11 janv. 2006 à 14:35
Bonjour,
Avec ces informations c est un peu difficile de savoir mais je pense que tu devrais ouvrir ta connexion avant le executeDataREader et la refermee ensuite pour ne pas laisser toujours la connexion ouverte. Dans le cas d une ouverture de page si tu as plusieurs liste a charger en fonction de donnée oracle tu ouvres ta connexion puis tu charges les liste et ensuite tu refermes la connexion. Tu n'es pas obliger d'initialiser a chaque fois ta connexion, tu l instancie 1 fois seulement.
cs_Razalgood
Messages postés9Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention 6 février 2006 11 janv. 2006 à 15:10
Merci de cette réponse, voici le code que j'utilise :
par exemple :
Dim MycommandPJ As OleDbCommand = OuvertureConnexion().CreateCommand()
MycommandPJ.CommandText = "Select ....
MycommandPJ.Parameters.Add("@num", OleDbType.Char).Value = ...
Dim ReaderPJ As OleDbDataReader = MycommandPJ.ExecuteReader()
Try
Do While ReaderPJ.Read()
....
Loop
Finally
ReaderPJ.Close()
FermetureConnexion()
End Try
avec :
Function OuvertureConnexion()
As System.Data.OleDb.OleDbConnection
OleDbConnection =
New System.Data.OleDb.OleDbConnection
OleDbConnection.ConnectionString = "Provider=...
OleDbConnection.Open()
Return OleDbConnection
End
Function
Sub FermetureConnexion()
OleDbConnection.Close()
End
Sub
En fait pour chaque requête, chargement liste ou autre, j'utilise ma fonction pour instancier ma connexion et la procédure pour la fermer. L'un ne va pas sans l'autre pour éviter les pb de connexion et ne pas laisser de connexion ouverte, ai-je bon ?
fduchamp
Messages postés13Date d'inscriptionjeudi 27 mars 2003StatutMembreDernière intervention10 avril 2006 11 janv. 2006 à 17:11
essai de voir a bien desalouer la connection par un dispose tout comme pour la commande ca eviter de faire gonfler la memoire.
Dim OleDbConnection As OleDbConnection
Private Sub test()
OuvertureConnexion()
Dim MycommandPJ As OleDbCommand = OleDbConnection.CreateCommand()
MycommandPJ.CommandText = "Select ...."
MycommandPJ.Parameters.Add("@num", OleDbType.Char).Value = " ..."
OleDbConnection.Open()
Dim ReaderPJ As OleDbDataReader = MycommandPJ.ExecuteReader()
Try
Do While ReaderPJ.Read()
Loop
Finally
ReaderPJ.Close()
MycommandPJ.Dispose()
FermetureConnexion()
End Try
End Sub
Sub OuvertureConnexion()
OleDbConnection = New System.Data.OleDb.OleDbConnection
OleDbConnection.ConnectionString = "Provider=..."
OleDbConnection.Open()
End Sub
Sub FermetureConnexion()
OleDbConnection.Close()
OleDbConnection.Dispose
End Sub
J espere que cela suffira a resoudre ton pb mais je suis pas sur.