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
51
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
51
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