IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

problème de lecture de requete [Débutant]


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Par défaut problème de lecture de requete
    bonjour a tous,

    on essaye de récupérer les noms des formations d'un département donnée mais lors de la lecture du résultat une indexoutofrangeexception se déclare
    on a une base access ou la requête souhaitée donne les bons résultats

    une idée???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            Dim req As String
            Dim MyReader As OleDbDataReader = OleDbCmd.ExecuteReader()
     
            req = "select f.sigle as nom from formation as f inner join departement as d on f.iddept = d.iddept where d.sigle='" & CmbHistoDep.SelectedItem.ToString & "';"
            ExecuteReq(req)
     
            Do While MyReader.Read()
                MyReader.Item("nom").ToString    'plante______________
            Loop

    merci d'avance de votre aide

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Bonjour,
    Dans un premier temps, merci d'utiliser les requêtes parametrées comme expliqué dans ce tutoriel : http://webman.developpez.com/article.../sqlparameter/

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Par défaut
    Merci pour cette réponse,

    Mais les fonctions utilisé dans le tutoriel sont considéré comme obsolète par visual studio 2010. Jusqu'à présent la démarche que j'utilise fonctionnait. (oleobd)

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Plait-il?
    La classe SqlParameter n'est pas près d'être dépreciée car c'est la bonne pratique lorsqu'on veut filtrer des données (et non pas une concaténation crade au possible).
    http://msdn.microsoft.com/en-us/library/4f844fc7

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    il y a un ou deux constructeurs obsolete, mais ca n'empeche en rien leur utilisation, ou l'utilisation des autres constructeurs

    la requete qu'on voit n'est pas contenue dans myreader, donc à mon avis tu as écris ton code un peu au hasard
    on ne sait pas non plus ce qu'est ExecuteReq, mais ca ne retourne rien donc c'est dur à exploiter
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Par défaut
    voici le code de executereq

    la connexion à la BD étant déjà effectuée auparavant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Sub ExecuteReq(ByVal req As String)
            ' on se connecte
            OleDbCmd = connect.CreateCommand()
            ' on prépare la requète SQL
            OleDbCmd.CommandText = req
            ' on éxécute la requète
            OleDbCmd.ExecuteNonQuery()
    End Sub
    je suis ouvert à toutes critiques concernant cette procédure

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Tu executes la requete mais tu ne fais rien du résultat...
    Je te suggère de d'abord lire les bases de la programmation en VB.Net et de bien les comprendre avant d'aller plus loin :
    http://plasserre.developpez.com/cours/vb-net/

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Par défaut
    J'execute la requête avec la fonction executeReq , et je recupère les resultat avec un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim MyReader As OleDbDataReader = OleDbCmd.ExecuteReader()
    Ce n'est pas la première fois que j'utilise cette procédure , et cela a toujours fonctionné. La requête est bonne (dans access) et il n'y aucune raison que vb nous sorte un résultat mauvais.

    ps. nous somme une équipe d’étudiant Reprenant un programme existant. Merci d'être conciliant.

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    executenonquery ne peut pas retourner le résultat d'un select
    de plus ton executereader est fait avant la définition de la requete
    donc ce code ne peut pas marcher et n'a jamais pu marcher en l'état !

    dans un autre ordre il pourrait fonctionner, mais la structure relèverait alors d'un coup de chance plutot que d'une vraie méthodologie de développement

    donc +1 pour la lecture du cours, car tu ne comprends pas les lignes de code que tu utilises
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Par défaut
    Merci pour les réponse.

    Alors effectivement, et on le reconnait, la structure du programme que l'on reprend n'est pas des plus rigoureuse.
    Le problème venait bien du fait que le reader était déclaré avant l’exécution de la requête.
    Je me pencherai sur le cours des que j'aurai le temps

    Encore merci, bonne fin de journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [fileupload] problème pour parser la requete
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 12
    Dernier message: 24/04/2008, 12h02
  2. Problèmes d'espaces après requete SQL
    Par innosang dans le forum Bases de données
    Réponses: 7
    Dernier message: 29/04/2004, 16h47
  3. problème de lecture base de registre
    Par pafounet3 dans le forum MFC
    Réponses: 10
    Dernier message: 31/12/2003, 14h06
  4. [fread] Problème de lecture de buffer
    Par karl3i dans le forum C
    Réponses: 2
    Dernier message: 25/09/2003, 09h21
  5. Réponses: 4
    Dernier message: 23/07/2003, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo