La syntaxe pour utiliser ExecuteNonQuery
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:
EDIT: Ajout de la coloration syntaxique.
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
-
ModérateurRegardes la requête que tu lui fait exécuter, elle contient sûrement une erreur, comme des " oubliés pour les chaines.
-
-
@mywilfriedBonjour,
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. -
@PlacageGranbyBonjour 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.
-
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. -
@PlacageGranbyLes 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.
-