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

Résolu
b3nsouss Messages postés 13 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 26 janvier 2016 - 23 mai 2012 à 11:00
b3nsouss Messages postés 13 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 26 janvier 2016 - 23 mai 2012 à 15:27
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

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 mai 2012 à 14:08
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 mai 2012 à 11:17
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
0
b3nsouss Messages postés 13 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 26 janvier 2016
23 mai 2012 à 13:18
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 { _
0
b3nsouss Messages postés 13 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 26 janvier 2016
23 mai 2012 à 15:27
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 ;)
0
Rejoignez-nous