La syntaxe pour utiliser ExecuteNonQuery

Fermé
mywilfried - Modifié par NHenry le 9/08/2015 à 20:12
 mywilfried - 14 août 2015 à 19:36
Bonjour,

j'aimerai ecrire dans une base de données access grace a visual studio 2010 mais je bute sur un avertissement "erreur dans la syntaxe INSERT INTO" voici mes lignes de code:
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic
Public Class demandedecaissement
    Inherits System.Windows.Forms.Form
  Private Sub demandedecaissement_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim myconnection As OleDbConnection = New OleDbConnection("provider=microsoft.jet.OLEDB.4.0; Data source=" & _
                        "C:\Users\MywilCZ\Documents\decaissmentmanuel.mdb")
        Dim mycommand As OleDbCommand = myconnection.CreateCommand()
        mycommand.CommandText = "INSERT INTO Demande0 (Num_demande,Motif,Destination)  VALUES (" & TextBox10.Text & ", " & TextBox10.Text & "," & TextBox1.Text & "," & TextBox2.Text & ") "
        myconnection.Open()
        Dim nbredeligneajoute As Integer
        nbredeligneajoute = mycommand.ExecuteNonQuery()
        MsgBox("le nombre de ligne ajoute est" & nbredeligneajoute)
 myconnection.Close()

    End Sub
End Class


EDIT: Ajout de la coloration syntaxique.

1 réponse

NHenry Messages postés 15047 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mars 2023 331
9 août 2015 à 20:13
Regardes la requête que tu lui fait exécuter, elle contient sûrement une erreur, comme des " oubliés pour les chaines.
0
Merci pour la proposition mais après plusieurs essais surtout dans la syntaxe SQL je n'ai pas pu résoudre le problème.Merci
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26 > mywilfried
10 août 2015 à 15:59
Bonjour,

Je ne suis pas un grand connaisseur de SQL, mais est-ce normal d'avoir
3x variables (Num_demande,Motif,Destination) et passer
4x valeurs (TextBox10.Text & ", " & TextBox10.Text & "," & TextBox1.Text & "," & TextBox2.Text)

Textbox10 semble passé 2 fois par erreur.
0
mywilfried > PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019
11 août 2015 à 19:30
Bonjour et Merci pour la correction mais ceci est une erreur lors de la rédaction du post!désolé et merci encore d'avoir attiré mon attention.
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
Modifié par PlacageGranby le 11/08/2015 à 20:59
Re-Bonjour,

Peut-être vérifier le format des champs de la base de données.

Si par exemple Num_demande doit recevoir un chiffre.
Le contenu d'un textbox est du texte. donc si l'on veut passer un chiffre, ce serait
Cint(TextBox10.Text)

Pour convertir en autre format, voir ce tableau
http://www.gaboly.com/VBA/ConversionType.html

Encore la. les chaines SQL ce n'est pas quelque chose que je manipule, bonne chance dans tes recherches.

p.s. aussi, il est bon de tester les paramètres lors de l'exécution.
Un classique :
msgbox textbox10.text
msgbox textbox1.text
msgbox textbox2.text

Juste pour valider.
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26 > PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019
Modifié par PlacageGranby le 11/08/2015 à 21:44
Les variables sont mise dans une chaine texte. donc oublie mon idée de conversion, ce n'est pas le problème, mais tu peux quand même valider quel sont les type de données attendu et le contenu de tes textbox.
0