Erreur de syntaxe dans l'instruction INSERT INTO.

Signaler
Messages postés
134
Date d'inscription
mercredi 9 mars 2005
Statut
Membre
Dernière intervention
17 octobre 2010
-
Messages postés
3
Date d'inscription
jeudi 4 janvier 2007
Statut
Membre
Dernière intervention
21 avril 2007
-
Bonjour,

Voilà, ca fais quelques jours que je me bat avec ma base de donnée et ADO. Je n'ai aucun pb pour lire ma base de donnée et l'ecrire dans mon dataset, de meme, j'arrive a modifier mon dataset. Par contre, je n'arrive pas a ecrire mon dataset dans ma base de donnée. J'ai fais un resumé de mon code avec une table nommée couple comportant deux champs : Nom couple et Abscisse. J'ai mis un datagridview nommé datagridview1 et un bouton sur le formulaire. Le code marche si on enleve les lignes suivantes (sinon "Erreur de syntaxe dans l'instruction INSERT INTO.") :

liaison =
New OleDbDataAdapter(
"SELECT Couple.[Nom couple], Couple.Abscisse FROM Couple", base)
liaison.InsertCommand = CmdBuild.GetInsertCommand()
liaison.Update(memoire,
"Couple")

Voici le code :


Public
Class Form1



'declaration des variables



Dim abs
As
Double
'variable representant l'abscisse des couples



Dim memoire
As
New DataSet()
'creation du dataset



Dim NewLigne
As DataRow



Dim cnx
As OleDbConnection



Dim base
As
String



Dim liaison
As
New OleDbDataAdapter



Dim BdProvider =
"Microsoft.Jet.Oledb.4.0"



Dim BdPathDirectory =
"C:\Documents and Settings\remi\Mes documents\architecture navale\bmauric\soft\test\Copie (3) de toto.mauric"



'"""""""""""""""""""""""""""""""""""""""""



'Recupération des couples dans la base de donnée



'"""""""""""""""""""""""""""""""""""""""""



Private
Sub affichageDBCouple(
ByVal requete
As
String,
ByVal table
As
String,
ByVal DataGridViewName
As DataGridView)



Try


base =
"provider=" & BdProvider &
"; " & _



"data source= " & BdPathDirectory



'declaration de la connection


cnx =
New OleDbConnection(base)


cnx.Open()
'ouverture de la connection


liaison =
New OleDbDataAdapter(requete, base)



'charge la table en mémoire


liaison.Fill(memoire, table)



Dim vue
As
New DataView(memoire.Tables(table))


DataGridViewName.DataSource = vue


cnx.Close()



Catch ex
As Exception


MessageBox.Show(ex.Message,
Me.Text)



End
Try



End
Sub



Private
Sub Form1_Load(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
Me.Load


affichageDBCouple(
"SELECT Couple.[Nom couple], Couple.Abscisse FROM Couple",
"Couple", DataGridView1)



End
Sub



Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click



Dim CmdBuild
As OleDbCommandBuilder


CmdBuild =
New OleDb.OleDbCommandBuilder(liaison)


NewLigne = memoire.Tables(
"Couple").NewRow


NewLigne(0) =
"toto"


NewLigne(1) = 3



' Création de la nouvelle ligne


memoire.Tables(
"Couple").Rows.Add(NewLigne)


liaison =
New OleDbDataAdapter(
"SELECT Couple.[Nom couple], Couple.Abscisse FROM Couple", base)


liaison.InsertCommand = CmdBuild.GetInsertCommand()


liaison.Update(memoire,
"Couple")



End
Sub


End
Class



Pouvez vous m'aider sur cette erreur qui se porte peut être sur ma requete? (pourtant elle est issue du mode ligne d'access ...et j'arrive bien a recupérer les données...)

En esperant ne pas trop vous déranger,
cordialement,

8 réponses

Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
Heuuu Elle est où ta requête insert???
Je ne vois que des SELECT là...

Et si on te répond c'est qu'on a le temps et l'envie de le faire...

Donc tu ne déranges pas
TBBUIM
Messages postés
134
Date d'inscription
mercredi 9 mars 2005
Statut
Membre
Dernière intervention
17 octobre 2010

Merci!
Bas en fais, d'apres les docs .net, je suppose qu'elle est directement incorporé dans :

liaison.InsertCommand = CmdBuild.GetInsertCommand()

je crois que c'est OleDbDataAdapter qui se débrouille pour insérer les données quand le dataset est modifié...enfin je pense... c'est la premiere fois que j'utilise une base de donnée.
si c'est pas ca, je sais pas comment faire pour mettre une requete insert dans mon code.

Encore merci,
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Salut,


Il y a, entres autres, un exemple de manipulation de bases de données, dans la CSLib.NET que tu peux trouver dans la partie gauche de la page d'accueil du site.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
J'avais pas vu que ct du .net
TBBUIM
Messages postés
134
Date d'inscription
mercredi 9 mars 2005
Statut
Membre
Dernière intervention
17 octobre 2010

Salut canisLupus, j'ai telecharger la cslib, mais je ne vois pas ou se trouve les exemples...j'ai trouver une doc (CSLib.chm) sur les différentes classes, mais point d'exemple ;-) ....ou se cachent t'ils?! ;-)
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
J'avais oublié, il faut être membre club pour télécharger le zip. Les exemples se trouvent dans CSLib.data.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
134
Date d'inscription
mercredi 9 mars 2005
Statut
Membre
Dernière intervention
17 octobre 2010

Ah, ok, merci pour ta reponse rapide.
donc je suis toujours a la recherche d'une aide, si quelqu'un a une idée du code pour mettre a jour sous vb.net (les lignes peuvent avoir étés modifiées/ajoutées/supprimées) un dataset dans une base de donnée avec un bouton "ok".

Cordialement,
Messages postés
3
Date d'inscription
jeudi 4 janvier 2007
Statut
Membre
Dernière intervention
21 avril 2007