VB.NET problème function-requete & question
Freedomsoul
-
Freedomsoul Messages postés 509 Date d'inscription Statut Membre Dernière intervention -
Freedomsoul Messages postés 509 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Voilà, j'ai un problème concernant une fonciton,
PS: j'ai simplifier mon code pour un meilleur lisibilité, cela n'influe rien sur mon problème :)
Voilà, j'ai un problème concernant une fonciton,
Function requete_BDD(ByVal requete, Optional ByVal type = 0) Dim connexion As New System.Data.OleDb.OleDbConnection() connexion.ConnectionString = "provider = Microsoft.Jet.OleDB.4.0;DATA source = '..\..\..\..\BDD.mdb'" connexion.Open() Dim cmd As New OleDbCommand(requete, connexion) Dim reader As OleDbDataReader = cmd.ExecuteReader Dim resultat reader.Read() If type = 2 Then resultat = reader 'reader contiendra un tableau de valeur, 'lié a la requete sql) Return resultat connexion.Close() 'Problème.. Il faut fermer la connexion avant le renvoie de la fonction !! 'Mais ... comme c'est un tableau, si je ferme la connexion, la pointeur vers le tableau est "bloqué.. enfin .. c'est ce que je pense .. et le problème est qu'au bout d'un trop grand nombre de requete de ce genre... la connexion est refusé.. sans doute car il y en a trop.. 'IL faudrait passer les valeur du tableau dans un nouveau tableau, cependant, je rencontre quelque difficulté avec le for each val in reader, y aurait-il une fonction count ? pour un tableau ? je suis bloqué par ce problème d'accès :s 'en gros si je mets le connexion.close avant... ça plante. le return ne revois rien ! >< End If '[...] End Function
PS: j'ai simplifier mon code pour un meilleur lisibilité, cela n'influe rien sur mon problème :)
A voir également:
- VB.NET problème function-requete & question
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
- L'opérateur ou l'administrateur a refusé la requête ✓ - Forum Windows
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ? ✓ - Forum Loisirs / Divertissements
3 réponses
Bonsoir Freedomsoul,
J'ai essayé de faire des changement sur votre fonction mais en connection avec sqlserver et ça a fonctionné.
Function requete_BDD(ByVal requete, Optional ByVal type = 0) As Collection
Dim connexion As New System.Data.OleDb.OleDbConnection()
connexion.ConnectionString = "provider = Microsoft.Jet.OleDB.4.0;DATA source = '..\..\..\..\BDD.mdb'"
connexion.Open()
Dim cmd As New OleDbCommand(requete, connexion)
Dim reader As OleDbDataReader = cmd.ExecuteReader
Dim resultat As New Collection
If type = 2 Then
While reader.Read()
resultat.Add(reader(0))
End While
reader.Close()
connexion.Close()
Return resultat
End If
End Function
j'espère qu'elle marchera pour vous =) bonne soirée ^^
J'ai essayé de faire des changement sur votre fonction mais en connection avec sqlserver et ça a fonctionné.
Function requete_BDD(ByVal requete, Optional ByVal type = 0) As Collection
Dim connexion As New System.Data.OleDb.OleDbConnection()
connexion.ConnectionString = "provider = Microsoft.Jet.OleDB.4.0;DATA source = '..\..\..\..\BDD.mdb'"
connexion.Open()
Dim cmd As New OleDbCommand(requete, connexion)
Dim reader As OleDbDataReader = cmd.ExecuteReader
Dim resultat As New Collection
If type = 2 Then
While reader.Read()
resultat.Add(reader(0))
End While
reader.Close()
connexion.Close()
Return resultat
End If
End Function
j'espère qu'elle marchera pour vous =) bonne soirée ^^
Eh bien ça ne fonctionne pas... mais a quoi correspond le type collection?
La valeur que je renvoie n'est pas forcément plusieur valeur !
selon la requete, on renvoie directement ou pas
La valeur que je renvoie n'est pas forcément plusieur valeur !
If type = 2 Then resultat = reader 'reader contiendra un tableau de valeur, 'lié a la requete sql) Return resultat connexion.Close() elseif type = 1 then resultat = reader(0) 'lunique valeur est renvoyée connexion.Close() Return resultat end if
selon la requete, on renvoie directement ou pas