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

ASP.NET Discussion :

erreur requête sql dans vb.net [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de bouchra19
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 76
    Points
    76
    Par défaut erreur requête sql dans vb.net
    Bonjour tout le monde

    J'ai une page asp.net (vb.net) dans laquelle je veux afficher le résultat d'une requête sql qui permet d'afficher le nombre d'articles produits par un employé dans un mois donné. Le numéro de l'employé dois être saisi dans un TextBox, le mois dans une DropDownList et aussi l'année dans une DropDownList.

    voilà le code du bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
            req = "select sum(NombreA) from Production P where NumE='" & TextBox1.Text & "' AND (DateP between ''" & (DropDownList1.SelectedValue()) & "'/01/'" & (DropDownList2.SelectedValue()) & "'' and ''" & (DropDownList1.SelectedValue()) & "'/30/'" & (DropDownList2.SelectedValue()) & "'')"
            cmd = New SqlCommand(req, con)
            con.Open()
            TextBox3.Text = cmd.ExecuteScalar
            con.Close()
        End Sub
    J'ai testé la requête dans sql server en donnant des exemples pour les valeurs des champs recherchés et cela a fonctionné très bien


    Mais que je l'éxecute dans le navigateur on me donne cette erreur:

    Incorrect syntax near '6'.
    (le 6 c'est la valeur du mois que j'ai sélectionné dans le DropDownList)


    Qui a une idée svp?
    Il n'est jamais trop tard pour apprendre

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 110
    Points
    110
    Par défaut
    Bonjour,

    Premier conseil :

    évite le maximum possible la concaténation pour construire une requête SQL et l’exécuter directement, et assure toi de la bonne syntaxe générée avant de l’exécuter !!!

    Pour faire simple, je te propose juste de récupérer la requête générée (req ), soit l'afficher quelque part soit l'exécuter directement sur SQL Serveur : et c'est pour vérifier la sytaxe !

  4. #4
    Membre régulier Avatar de bouchra19
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 76
    Points
    76
    Par défaut
    Bonjour

    Merci pour vos réponses

    Apparemment vous m'avez pas bien compris

    Mais j'ai résolu le problème en remplaçant la requête précédente par celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    req = "select sum(NombreA) from Production P where NumE='" & TextBox1.Text & "' AND month(DateP)='" & DropDownList1.SelectedValue & "' AND year(DateP) = '" & DropDownList2.SelectedValue & "'"
    Il n'est jamais trop tard pour apprendre

  5. #5
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Les informations que tu passes à la requetes viennent de l'utilisateur.
    Que se passe-t-il si TextBox1.Text vaut "toto ' ; drop table Production --" (sans les doubles quote)
    Les injections SQL c'est la base. Les requêtes paramétrées permettent de les éviter.

  6. #6
    Membre régulier Avatar de bouchra19
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 76
    Points
    76
    Par défaut
    J'ai bien saisi la notion des requêtes paramétrées et ils me semblent très utiles

    Mais ils n'ont pas résolu mon problème. moi je voulais juste que la requête marche, la sécurité vient après

    En tout cas, j'ai la chance que vous m'avez découvert ce truck, merci infiniment
    Il n'est jamais trop tard pour apprendre

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

Discussions similaires

  1. [Batch] Erreur requête SQL dans l'historique de Google Chrome
    Par devilsnake88 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 15/04/2014, 18h42
  2. [XL-2003] Erreur requête SQL en VBA dans Excel : colonne contenant des chiffres et des lettres
    Par Sergeith dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/08/2009, 13h49
  3. Erreur requête SQL en VBA dans Excel
    Par Sergeith dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/06/2009, 15h06
  4. erreur dans une requête sql dans une fonction php
    Par frboyer dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2009, 13h37
  5. Problême requête SQL dans access..Erreur 3079
    Par DavidGG dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/01/2008, 17h48

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