Base donnée acess

cs_fayrous Messages postés 48 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 30 avril 2009 - 27 avril 2009 à 19:53
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 29 avril 2009 à 09:56
Salut;
dans la requete update il y a une erreur de syntax.
pouvez vous m'aider.

System.Data.OleDb.OleDbConnection c = new System.Data.OleDb.OleDbConnection();

c.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" + Application.StartupPath + "\\baseFASTQCM.mdb";
try
{

c.Open();
System.Data.OleDb.OleDbCommand command new System.Data.OleDb.OleDbCommand("UPDATE Etudiant SET note '" + x + "' WHERE ( (num_exercice LIKE '" + k.ToString() + "') and (num_question LIKE '" + read_ques_enchaine_1[0].ToString() + "') and (num_compostage LIKE '" + compostage[0].ToString() + "') and (matiere LIKE '" + comboBox_matiere_c.SelectedItem + "') and (sectionn LIKE '" + comboBox_section_c.SelectedItem + "') and (date LIKE '" + comboBox_date_c.SelectedItem + "') ); ", c);


command.ExecuteNonQuery();


}
catch (Exception ex)
{
MessageBox.Show("Notre connection n'est pas établit");
}
finally
{


MessageBox.Show("Operation de modification d'exercice est effectuée");
}
merci d'avance

5 réponses

titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
28 avril 2009 à 00:21
Bonjour ,
peux tu nous donner le message d'erreur complet ?
0
cs_fayrous Messages postés 48 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 30 avril 2009
28 avril 2009 à 08:40
erreur de syntaxe dans l'instruction update.
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
28 avril 2009 à 14:22
Salut

Tout d'abord, renseigne-toi sur les requêtes paramétrées, ça rendra ta requête SQL plus lisible.

Ensuite, dans ta requête, si le champ "note" est un entier, ne met pas de quote autour de sa valeur.
Enfin, toujours dans ta requête, si "date" est de type datetime ou timestamp, il faut utiliser = à la place de LIKE et il y a des règles précises pour les dates (que je ne connais plus par cœur), mais renseigne-toi. Je me demande par exemple si elle ne doit pas être entourée de #.

Si tu n'arrives pas à résoudre ton problème avec ces infos, donne-nous :
- la structure de ta table Etudiant
- la valeur exacte de la requête (donc avec les valeurs des variables)

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
cs_fayrous Messages postés 48 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 30 avril 2009
28 avril 2009 à 23:31
Salut;
je ne puisse jamais la corriger.

la table Etudiant contient les champs suivants:
- matiere (string)
-sectionn (string)
-date (string)
- num_exercice(string)
- num_question(string)
- num_compostage(string)
-note (double)

les valeurs des variables est :
matiere -->Reseau Local
sectionn -->I4
date --> 20/04/2009
num_exercice --> 3
num_question --> 2
num_compostage -->112
la note = 1

merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
29 avril 2009 à 09:56
Tout d'abord, vérifie que ta requête est bien exactement comme ça (au caractère près) :

UPDATE Etudiant SET  note = 1 WHERE ( (num_exercice LIKE  '3')  and  (num_question  LIKE '2') and (num_compostage LIKE '112') and  (matiere LIKE 'Reseau Local') and  (sectionn LIKE 'I4') and  (date  LIKE '20/04/2009') );

Tu peux également essayer de faire un copier-coller de ta requête (donc théoriquement de ce que je viens de marquer) dans Access, puis d'exécuter. Access sera probablement plus précis en ce qui concerne l'emplacement de l'erreur.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
Rejoignez-nous