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