Problème de INSERT INTO en c# dans Acess 2010

Fermé
Frank2312 - 20 mars 2012 à 15:07
 Frank2312 - 22 mars 2012 à 16:48
Bonjour,

J'obtient l'erreur "Erreur de syntaxe dans l'instruction INSERT INTO." lorsque j'essaie d'insérer des informations dans ma base de données. Pourtant, j'ai copié/coller un de mes propres codes qui existait déjà et pour le quel je n'ai eu aucun problème à faire fonctionner. Je l'ai bien sûr modifié selon mon nouveau projet.

Voici les détails :

Trace de la pile:
[OleDbException (0x80040e14): Erreur de syntaxe dans l'instruction INSERT INTO.]
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) +1081420
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +247
   System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +194
   System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +58
   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +167
   System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +113
   TP2.Réservation_local.btnSubmit_Click(Object sender, EventArgs e) in C:\Users\Frank\Documents\Mallette magique\Dropbox\CEGEP\Session_2\Multimedia\TPs\TP3\TP3\Réservation_local.aspx.cs:186
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563


Code en question:

OleDbCommand maCommande;
string requeteSQL;
requeteSQL = "INSERT INTO Reservations (Local, Jour, Heure, Matricule) Values (@loc, @jour, @heure, @mat);";
maCommande = new OleDbCommand(requeteSQL, maConnexion);
maCommande.Parameters.AddWithValue("loc", i);
maCommande.Parameters.AddWithValue("jour", date);
maCommande.Parameters.AddWithValue("heure", (j + 7));
maCommande.Parameters.AddWithValue("mat", txtMatricule.Text);
maCommande.ExecuteNonQuery(); //L'ERREUR APPARAIT ICI, donc dans ma requête.


Merci pour toute aide que vous pourriez me donner.
A voir également:

1 réponse

Mopra-L Messages postés 146 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 23 mai 2012 6
20 mars 2012 à 15:17
Bonjour,

As-tu essayé de faire un echo de ta variable requeteSQL, et de l'exécuter directement sur ta BDD, si c'est possible ?


0
Pourrais-je savoir comment faire ce que tu as décris? Je débute présentement en c# et en Access.

Merci :).
0
Mopra-L Messages postés 146 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 23 mai 2012 6
22 mars 2012 à 10:55
Autant pour moi, j'aurais du apprendre à lire les titres en entier, je croyais que c'était du PHP ^^'

Je ne connais pas le C#, mais si c'est comme le C++, pour afficher du texte, il faudrait faire comme ca, je crois

cout << requeteSQL 


Pour ce qui est de tester une requête avec Acces, j'avoue que je ne me souviens plus exactement la procédure pour tester des requêtes ^^'
0
Le C# n'est pas vraiment comme le C++. D'ailleurs, je ne cherche pas à afficher quoi que ce soit à l'écran, je veut tout simplement envoyer de l'information entrée par un utilisateur dans ma base de données.

J'ai déjà utilisé la partie de code mentionnée dans ma question dans un autre de mes projets, mais, étrangement, il ne veut pas fonctionner dans mon projet actuel, ce que je trouve très étrange. J'ai beau vérifier et re-vérifier, je ne vois pas mon erreur.
0