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.
A voir également:

1 réponse

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