.Net Un dataReader asocié à cette connexion est déjà ouvert, il doit être tout d
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 2009
-
28 mai 2004 à 15:50
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 2009
-
28 mai 2004 à 16:52
je me suis créé un calendrier qui lit une base de données, en Vb.Net. Il fonctionne parfaitement. Sauf que si moindrement je met 2 calendrier je reçoi cette erreur "Un dataReader asocié à cette connexion est déjà ouvert, il doit être tout d'abord fermé"
mon calendrier s'initialise sans base de donnée et s'il reçoi la base de donnée, il met à jour sont affichage en la lisant. donc j'ai une fonction setDB
Public Function setDB(ByVal dbtemp As System.Data.OleDb.OleDbConnection)
db = dbtemp
cmd1 = db.CreateCommand
cmd1.CommandText = "select periodes from Tb_Periodes_Local"
drd1 = cmd1.ExecuteReader
dbOk = True
période()
End Function
db est un System.Data.OleDb.OleDbConnection
cmd1 est un System.Data.OleDb.OleDbCommand
et drd1 est un System.Data.OleDb.OleDbDataReader
la première chose que j'ai penser est de faire une fonction qui s'assure que le drd1 est bien fermé
Private Sub closetest(ByVal drd1 As System.Data.OleDb.OleDbDataReader)
On Error Resume Next
drd1.Close()
End Sub
mais l'erreur arrive quand même
ensuite j'ai pensé ajouter un on error resume next dans ma function setDB, mais c'est encore pire.
Donc quelqu'un a une idée qui va permettre d,avoir autant de calendrier que je veux avec tous un accès à la base de donnée sur le même System.Data.OleDb.OleDbConnection ??? puisque j'ouvre ma connection sur ma form de départ, pour ça je l'envoi en paramètre. Puisque ça donne rien de faire 20 connections sur une même application.
mais je comprend quand même pas pourquoi j'ai cette erreur, puisque la connection est la même, mais les dataReader sont déclarer dans mes calendriers. Donc chaque calendrier a sont dataReader, donc en partant, il devrait être vide. En passant, il écrit nothing comme valeur au dataReader avant que ça plante.
A voir également:
.Net Un dataReader asocié à cette connexion est déjà ouvert, il doit être tout d