[Problème requête] SQLite en VB.net [Résolu]

Signaler
Messages postés
13
Date d'inscription
vendredi 13 avril 2012
Statut
Membre
Dernière intervention
26 janvier 2016
-
Messages postés
13
Date d'inscription
vendredi 13 avril 2012
Statut
Membre
Dernière intervention
26 janvier 2016
-
Dim sqlcommand As New SQLiteCommand(String.Concat(New String() {"INSERT INTO MESU_PLANT(id_mesu_plant, mesure,id_organe, positionMoy, id_campagne,methode, date,valeur) VALUES('(SELECT max(id_mesu_plant) FROM mesu_plant)+1','", Me.ComboBoxmesure.Text, "','SELECT ID_ORGANE FROM TYPEORGANE WHERE NOMORGANE = ", Me.ComboBoxorgane.Text, "','", Me.TextBoxgps.Text, "','", Me.ComboBoxessai.Text & Me.TextBoxdate.Text, "','", Me.ComboBoxméthode.Text, "','", Me.TextBoxdate.Text, "','", Me.TextBoxvaleur.Text, "');"})) With { _


Bonjour,

mon problème est que lorsque cette requête s’exécute, dans la base je n'ai pas le résultat des autres requêtes en valeur mais elle sont remises tel qu'elle dans la base (elle ne sont pas traitées ):
'(SELECT max(id_mesu_plant) FROM mesu_plant)+1'
et
'SELECT ID_ORGANE FROM TYPEORGANE WHERE NOMORGANE = ", Me.ComboBoxorgane.Text, "'

4 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Tu as enlevé des parenthèses autour du premier SELECT qui sont nécessaires. Le count n'est pas bon, le max était meilleur, il te manque des ' à d'autres endroits, etc..

Plutôt que de vouloir écrire ton code en une seule ligne, décompose l'écrire de ta requete à part. Lors de l’exécution, met un point d’arrêt juste avant de passer la requete obtenu à ton objet command et regarde ce que tu as obtenu comme requete. C'est le meilleur moyen de voir si elle est bonne ou pas.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
ne met pas de ' pour encadrer tes requêtes dans la clause Values

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
13
Date d'inscription
vendredi 13 avril 2012
Statut
Membre
Dernière intervention
26 janvier 2016

ah sa m'a débloqué un peu mais maintenant il me dis qu'il y aurai une erreur au niveau d'un SELECT mais je vois pas.

Dim sqlcommand As New SQLiteCommand(String.Concat(New String() {"INSERT INTO MESU_PLANT(id_mesu_plant, mesure,id_organe, positionMoy, id_campagne,methode, date,valeur) VALUES(SELECT count(id_mesu_plant) FROM mesu_plant + 1,'", Me.ComboBoxmesure.Text, "',SELECT ID_ORGANE FROM TYPEORGANE WHERE NOMORGANE = '", Me.ComboBoxorgane.Text, "','", Me.TextBoxgps.Text, "','", Me.ComboBoxessai.Text & Me.TextBoxdate.Text, "','", Me.ComboBoxméthode.Text, "','", Me.TextBoxdate.Text, "','", Me.TextBoxvaleur.Text, "');"})) With { _
Messages postés
13
Date d'inscription
vendredi 13 avril 2012
Statut
Membre
Dernière intervention
26 janvier 2016

les 2 sous requêtes sont bonnes je l'ai ai déjà testées avec un autre logiciel. En remettant les parenthèses sa marche. merci pour ton aide ;)