Vb datareader deja ouvert
Résolu/Fermé
A voir également:
- Vb datareader deja ouvert
- Vb - Télécharger - Langages
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Vb cable - Télécharger - Audio & Musique
- Proxy ouvert instagram - Forum Réseaux sociaux
- Bac vide ou ouvert hp ✓ - Forum Imprimante
6 réponses
Utilisateur anonyme
9 nov. 2011 à 19:10
9 nov. 2011 à 19:10
Bonjour,
Force le dispose avec un [ Try Catch Finnaly ]
Cdt
Lupin
Force le dispose avec un [ Try Catch Finnaly ]
Try comd.Connection = con returnVa = comd.ExecuteReader() comd.Dispose() Catch ex As Exception Finally comd.Dispose() End Try
Cdt
Lupin
Merci pour ta réponse,
j'ai forcé avec un try catch mais toujours la meme erreur.
au fait j'aimerai dans mon formulaire avant insertion d'une donnée verifié si l'identifiant existe déja dans la base.
La premiere tentative ça passe sans probleme, il me ramene les données si je click une seconde fois sur le bouton insertion de mon formulaire il cause se probleme.
Es ce il ya un autre moyen pour pouvoir voir si un enregistrement exist dans la base hors mis la maniere dont je procede. ou bien comment pallier à ce probleme
voila la modification du try catch:
Dim returnVa As New Object
Dim comd As New SqlCommand
Try
Req = "SELECT * FROM " + Table+ " WHERE " + FieldId+ " ='" + Id+ "'"
comd.CommandType = CommandType.Text
comd.CommandText = Req
comd.Connection = sqlConnex
returnVa = comd.ExecuteReader()
comd.Dispose()
Catch ex As Exception
Finally
comd.Dispose()
End Try
Return returnVa
Merci de votre aide
j'ai forcé avec un try catch mais toujours la meme erreur.
au fait j'aimerai dans mon formulaire avant insertion d'une donnée verifié si l'identifiant existe déja dans la base.
La premiere tentative ça passe sans probleme, il me ramene les données si je click une seconde fois sur le bouton insertion de mon formulaire il cause se probleme.
Es ce il ya un autre moyen pour pouvoir voir si un enregistrement exist dans la base hors mis la maniere dont je procede. ou bien comment pallier à ce probleme
voila la modification du try catch:
Dim returnVa As New Object
Dim comd As New SqlCommand
Try
Req = "SELECT * FROM " + Table+ " WHERE " + FieldId+ " ='" + Id+ "'"
comd.CommandType = CommandType.Text
comd.CommandText = Req
comd.Connection = sqlConnex
returnVa = comd.ExecuteReader()
comd.Dispose()
Catch ex As Exception
Finally
comd.Dispose()
End Try
Return returnVa
Merci de votre aide
Utilisateur anonyme
10 nov. 2011 à 17:38
10 nov. 2011 à 17:38
re:
à quel moment fais-tu un [ sqlConnex.Close ]
pour être capable de lire tu dois sans doute
faire un sqlConnex.Open ???
comment défini tu [ sqlConnex ].
ta syntaxe de lecture est complexe pour rien,
tu aurais pu pour la lecture faire comme ceci :
Dim MonAdapteur As OleDb.OleDbDataAdapter = Nothing
Dim MonDataTable As DataTable = Nothing
Dim MonDataSet As New DataSet()
Dim sqlConnex As New OleDb.OleDbConnection()
sqlConnex .ConnectionString = "Provider=Microsoft.Jet.OleDB.4.0;" & "Data Source= " & Chemin & ";"
sqlConnex.Open()
Dim reqSQL As String = "SELECT * FROM " + Table+ " WHERE " + FieldId+ " ='" + Id+ "'"
MonAdapteur = New OleDbDataAdapter(reqSQL, Connexion)
MonAdapteur.Fill(MonDataSet, "NomDeLaTable")
MonDataTable = MonDataSet.Tables("NomDeLaTable")
Return MonDataTable
Cdt
Lupin
à quel moment fais-tu un [ sqlConnex.Close ]
pour être capable de lire tu dois sans doute
faire un sqlConnex.Open ???
comment défini tu [ sqlConnex ].
ta syntaxe de lecture est complexe pour rien,
tu aurais pu pour la lecture faire comme ceci :
Dim MonAdapteur As OleDb.OleDbDataAdapter = Nothing
Dim MonDataTable As DataTable = Nothing
Dim MonDataSet As New DataSet()
Dim sqlConnex As New OleDb.OleDbConnection()
sqlConnex .ConnectionString = "Provider=Microsoft.Jet.OleDB.4.0;" & "Data Source= " & Chemin & ";"
sqlConnex.Open()
Dim reqSQL As String = "SELECT * FROM " + Table+ " WHERE " + FieldId+ " ='" + Id+ "'"
MonAdapteur = New OleDbDataAdapter(reqSQL, Connexion)
MonAdapteur.Fill(MonDataSet, "NomDeLaTable")
MonDataTable = MonDataSet.Tables("NomDeLaTable")
Return MonDataTable
Cdt
Lupin
Merci lupin pour ton aide, j'ai voulu centralisé sqlConnex comme ça quand j'ai besoin de lui je l'appel à n'importe quel moment je ne sais pas si ma maniere de procédé est bonne. mais finalement j'ai créer une methode getconnexion() que j'appel puis j'utilise
Dim returnVa As New Object
Dim comd As New SqlCommand
Dim con As New SqlConnection
con = getConnexion()
con.Open()
......
......
et ici je ferme la connexio
con.close
ça marche nikelement bien
parcontre j'aimerai savoir si ma variable sqlconnex c'est bien de la laissé open
Dim returnVa As New Object
Dim comd As New SqlCommand
Dim con As New SqlConnection
con = getConnexion()
con.Open()
......
......
et ici je ferme la connexio
con.close
ça marche nikelement bien
parcontre j'aimerai savoir si ma variable sqlconnex c'est bien de la laissé open
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
10 nov. 2011 à 17:58
10 nov. 2011 à 17:58
re :
seulement si tu as des problèmes de performance.
Ça dépend beaucoup du nombre d'enregistrements à traiter.
Jusqu'a ce jour, j'ai toujours fermé ma connexion.
Ouverture
Lecture
Fermeture
Idem pour Insertion et MiseÀJour.
Cdt
Lupin
seulement si tu as des problèmes de performance.
Ça dépend beaucoup du nombre d'enregistrements à traiter.
Jusqu'a ce jour, j'ai toujours fermé ma connexion.
Ouverture
Lecture
Fermeture
Idem pour Insertion et MiseÀJour.
Cdt
Lupin