Base donnée acess

Signaler
Messages postés
48
Date d'inscription
lundi 23 février 2009
Statut
Membre
Dernière intervention
30 avril 2009
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
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

Messages postés
433
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
4 décembre 2009
1
Bonjour ,
peux tu nous donner le message d'erreur complet ?
Messages postés
48
Date d'inscription
lundi 23 février 2009
Statut
Membre
Dernière intervention
30 avril 2009

erreur de syntaxe dans l'instruction update.
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
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 ! -
Messages postés
48
Date d'inscription
lundi 23 février 2009
Statut
Membre
Dernière intervention
30 avril 2009

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
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
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 ! -