OleDbException avec un INSERT INTO
Amis du dimanche bonjour,
j'ai une petit soucis avec mon programme, lorsque je clique sur un bouton pour enregistrer mes données dans une table access j'obtiens le message d'erreur suivant :
Citation:
L'exception OleDbException n'a pas été gérée
et quand je clic sur détail j'ai ceci :
Citation:
Erreur de syntaxe dans l'instruction INSERT INTO
alors je ne comprend car mon enregistrement s'effectue si j'affecte 2 "AddWithValue" mais à partir de 3 j'ai le message ci dessus,
je vois pas ou est le soucis! (les colonnes de ma table portent des libelles identique à mon INSERT INTO)
pour la class :
Code:
1 2 3 4 5
| Imports System.Data
Public Class Form1
Dim con As New OleDb.OleDbConnection
Dim ds As New DataSet |
voici mon code :
au chargement de ma fenêtre
Code:
1 2
| con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = C:\Documents and Settings\Laurent\Mes documents\Visual Studio 2008\Projects\Statio\Statio\Stats.mdb"
Connexion() |
Ma méthode connexion
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Private Sub Connexion()
' Déclaration de la variable cmd
' OleDbCommand représentera ici une instruction SQL à exécuter par rapport à une source de données
Dim cmd As OleDb.OleDbCommand
' Déclaration de sql_ajouter, qui contiendra la requête SQL permettant d'ajouter un enregistrement
Dim sql_tout_afficher As String
sql_tout_afficher = "SELECT * FROM depart"
' Initialisation de la requête
cmd = New OleDb.OleDbCommand(sql_tout_afficher, con)
' Ouverture de la connexion
cmd.Connection.Open()
'(3) Récupération du résultat de la requête dans un dataset
' Déclaration de notre data adapter
Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
' On sélectionne les enregistrements de la requête
da.SelectCommand = cmd
' et on injecte les enregistrements dans le dataset
da.Fill(ds, "Liste_depart")
' Fermeture de la connexion
cmd.Connection.Close()
End Sub |
et enfin mon bouton ajouter l'enregistrement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Dim cmd As OleDb.OleDbCommand
Dim sql_ajouter As String
sql_ajouter = "INSERT INTO depart (Inter, Renfort, Date) VALUES(Val_inter, Val_renfort, Val_date)"
cmd = New OleDb.OleDbCommand(sql_ajouter, con)
cmd.Parameters.AddWithValue("Val_inter", Label22.Text)
cmd.Parameters.AddWithValue("Val_renfort", Label32.Text)
cmd.Parameters.AddWithValue("Val_date", Label23.Text)
' Ouverture de la connexion
cmd.Connection.Open()
' Exécution de la requête SQL
cmd.ExecuteReader()
' Fermeture de la connexion
cmd.Connection.Close()
' On vide le dataset
ds.Clear() |
Ma table quand à elle comporte 3 colonnes :
ID (numéro auto)
Inter (numérique)
Renfort (numérique)
Date (texte)
une idée sur la chose ?