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 syntaxe dans la requete sql select


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Par défaut Problème de syntaxe dans la requete sql select
    Bonjour tout le monde,
    bon voilà mon probléme, moi j'utilise vb.net et une base de donnée mysql,bref comme l'indique le titre voisi la requete en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Mycommand.CommandText = "SELECT COUNT(NATURE_CMD.NATURE_C )
    FROM CMD, FORMAT_CMD, NATURE_CMD
    WHERE CMD.CODE_F = FORMAT_CMD.CODE_F
    and CMD.CODE_N = NATURE_CMD.CODE_N
    and NATURE_CMD.NATURE_C=('" + Form4.DataGridView4.Rows(j).Cells(2).Value.ToString + "')
    and FORMAT_CMD.prix= ('" + Form4.DataGridView4.Rows(j).Cells(1).Value.ToString + "')
    and FORMAT_CMD.IMG =('" + Form4.DataGridView4.Rows(j).Cells(0).Value + "')" 
    mon problème est avec la ligne qui est coloré en rouge sachant que Form4.DataGridView4.Rows(j).Cells(0).Value est de type image dans un datagridview.
    L'erreur c'est que
    l'opérateur '+' n'est pas défini pour type 'Byte'

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    D'une part, pour concaténer des chaines de caractères en VB on utilise '&' et non '+'

    D'autre part, je sais pas trop ce que tu cherches à faire, mais ça me semble vraiment une drôle d'idée (comprendre : une mauvaise idée) de chercher une ligne en testant l'égalité d'une image

    Ensuite, ton image dans le DataGridView est a priori de type Byte() (tableau de Byte). Donc si tu concatènes ce tableau avec une chaine, ça va appeler ToString() dessus, ce qui va renvoyer System.Byte[]... il n'y a pas de façon simple de représenter des données binaires dans une requête SQL (tu peux le faire en hexadécimal avec certains SGBD, mais c'est pas une bonne idée vu que ça peut rapidement devenir énorme)

    Ce qui m'amène au dernier point : il ne faut pas inclure des variables directement dans la requête. Il faut utiliser des requêtes paramétrées, comme expliqué ici :
    http://webman.developpez.com/article...rameter/vbnet/

Discussions similaires

  1. problème de syntaxe dans une requête SQL
    Par nutopia dans le forum Langage SQL
    Réponses: 4
    Dernier message: 22/11/2010, 17h17
  2. [MySQL] probleme de syntaxe dans une requete sql
    Par nico le noob dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/08/2010, 02h10
  3. [MySQL] Erreur de syntaxe dans un requete SQL
    Par dotnet_kbma dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/01/2010, 09h33
  4. Erreur de syntaxe dans une requete SQL
    Par fikou dans le forum VB.NET
    Réponses: 5
    Dernier message: 26/07/2007, 17h14
  5. [MySQL] probleme de syntaxe dans une requete sql
    Par jeanfrancois dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/03/2006, 10h54

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