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 l'execution d'une requete


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 56
    Points
    56
    Par défaut problème de l'execution d'une requete
    Bonjour,

    J'ai un problème dans mon programme dès que j'éxecute ma requete SQL.
    Je configure ma connexion a cette base par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'Mise en place de la connexion avec la base Access
            cnx = New ADODB.Connection
            rst = New ADODB.Recordset
     
            'Définition du pilote de connexion
            cnx.Provider = "Microsoft.Jet.Oledb.4.0"
            'Base de données à connecter
            cnx.ConnectionString = sDbRev
            'Ouverture de la base de données
            cnx.Open()
    Ensuite j'écris ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ' Requête pour cherche les information du calcul
            Dim requete As String
            requete = "SELECT PC FROM UTILAPPARCH WHERE APP = PROE"
    et ensuite le l'execute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            ' Exécution de la requète
            cnx.Execute(requete)
    Dès que le programme arrive a cette étape j'ai cette exeption :



    Je n'arrive pas a trouver pourquoi ca me mets ca.
    Pour vérifier que ma requete fonctionnait, je l'ai testé dans SQL server 2005 et elle fonctionne.

    Si vous avez des idées pour m'aider a trouver des solutions.

    Merci d'avance

  2. #2
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Citation Envoyé par azräel Voir le message
    Ensuite j'écris ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ' Requête pour cherche les information du calcul
            Dim requete As String
            requete = "SELECT PC FROM UTILAPPARCH WHERE APP = PROE"
    Bonjour,

    Alors personnelement pour ta requête tu devrais plutôt mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ' Requête pour cherche les information du calcul
            Dim requete As String
            requete = "SELECT PC FROM UTILAPPARCH WHERE APP = 'PROE'"
    Car il s'agit bien d'un élément passé en paramètre ? Il faut que ton champ APP ait comme valeur 'PROE' ?
    Essaye dans un premier temps ceci et tiens nous au courant des évolutions.
    ~ Lola ~

  3. #3
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 56
    Points
    56
    Par défaut
    Effectivement ca marche mieux comme ca

    J'avais deja essayé cette synthase mais j'avais du faire une erreur.

    Par exemple si dans ma requete je rajoute des dates devrais-je aussi rajouter des quotes (')entre chaque date ??

    si oui en gros la requete serais comme ca ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete = "SELECT APP,PC, STARTTIME, CURRTIME FROM UTILAPPARCH WHERE APP = '" & ComboBox1.Text & "'" & " AND starttime BETWEEN '" & TextBox1.Text & "' and '" & TextBox2.Text & "' AND currtime BETWEEN '" & TextBox1.Text & "' and '" & TextBox2.Text & "'"
    en gros avec les valeurs ca donne ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete	"SELECT APP,PC, STARTTIME, CURRTIME FROM UTILAPPARCH WHERE APP = 'PROE' AND starttime BETWEEN '01/01/2006' and '01/01/2007' AND currtime BETWEEN '01/01/2006' and '01/01/2007'"
    Oui ma requete a un peu changé

    en tout cas merci lola

  4. #4
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par azräel Voir le message
    Par exemple si dans ma requete je rajoute des dates devrais-je aussi rajouter des cotes (')entre chaque date ??
    Eh oui... les variables au format date, string, text (principalement) sont toujours entourées de quotes. Comme ça, si jamais ton paramètre contient des caractères spéciaux (ex : &/\...) ils ne sont pas considérés comme appartenant à ta requête, mais à ton paramètre.

  5. #5
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 56
    Points
    56
    Par défaut
    ok.

    Donc lors que je test cette nouvelle requete, une autre exeption apparait.
    Et cette exeption me dit :
    Type de données incompatible dans l'expression du critère.
    Faut il une expression spécial pour pouvoir ajouter des dates a ma requete?

    Pour l'instant j'ai fait mes test avec ce format et ces dates la :

    01/01/2006 et 01/01/2007

  6. #6
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 119
    Points
    119
    Par défaut
    Faut il une expression spécial pour pouvoir ajouter des dates a ma requete?
    En fait, tout dépend de ce qu'attend ta base de données. Si tu attends un paramètre au format date+heure, ça risque de ne pas très bien fonctionner . Si tu attends simplement un paramètre au format date, vérifie bien le format d'affichage des dates dans ta base de données.
    Essais de mettre la date dans ce format : 2006-01-01 ou 2006-12-31...

  7. #7
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 56
    Points
    56
    Par défaut
    Le format dans ma base de données est : dd/mm/yyyy HH:MM
    donc date + heure.

    Mais si cette ma requete fonctionne correctement sur SQL SERVER, devrait elle pas fonctionner dans le programme aussi ??

    Car dans SQL SERVER lors de ma requette il m'affiche bien toutes mes variables voulu et pourtant j'ai aussi mis 01/01/2006 et 01/01/2007 en paramètre.

    J'ai fait le test avec le format dd-mm-yyyy et yyyy-mm-dd sans succès

  8. #8
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Faut parse les valeurs des textbox avec CDate par exemple pour voir
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  9. #9
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 119
    Points
    119
    Par défaut
    Faut parse les valeurs des textbox avec CDate par exemple pour voir
    Gné ? Ça veut dire quoi ta phrase ? C'est du français ?

  10. #10
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Lol si t'avais fait un peu de JAVA ou du C# tu devrais savoir que parse c'est convertir
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  11. #11
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 119
    Points
    119
    Par défaut
    Ahhhh
    Ceci explique cela : je n'ai pas fait de java, ni de C#... et il y a encore quelque mois, j'étais persuadée que VB6 était e qu'il y a de mieux pour réaliser une application (je n'avais jamais entendu parler de .Net ).
    Mais ça va, j'me soigne : je suis en stage dans la vie réelle maintenant !
    Donc en fait, ta phrase ça voulait dire : "Faut convertir les valeurs des Textbox, avec CDate par exemple, pour voir."
    C'est ça ?

  12. #12
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Oui je crois avoir rencontrer une fois ce genre de problème et j'ai utiliser CDate et mes requêtes sont passé
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  13. #13
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Effectivement convertir les valeurs des textboxs avec cDate était la solution

    Merci lilroma

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

Discussions similaires

  1. [MySQL] Problème d'execution d'une requete
    Par mademoizel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/10/2009, 14h08
  2. Réponses: 11
    Dernier message: 03/07/2008, 14h48
  3. probléme execution d'une requete
    Par sarah_s dans le forum C#
    Réponses: 5
    Dernier message: 30/05/2007, 17h21
  4. Probleme d'execution d'une requete avec un Count
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 23/06/2004, 10h33
  5. [ADO] Probleme lors de l'execution d'une requete...
    Par NoisetteProd dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/06/2004, 12h43

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