La syntaxe pour utiliser ExecuteNonQuery

mywilfried -  
 mywilfried -
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

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Regardes la requête que tu lui fait exécuter, elle contient sûrement une erreur, comme des " oubliés pour les chaines.
    0
    1. mywilfried
       
      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
    2. PlacageGranby Messages postés 402 Statut Membre 26 > mywilfried
       
      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
    3. mywilfried > PlacageGranby Messages postés 402 Statut Membre
       
      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
    4. PlacageGranby Messages postés 402 Statut Membre 26
       
      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
    5. PlacageGranby Messages postés 402 Statut Membre 26 > PlacageGranby Messages postés 402 Statut Membre
       
      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