J'ai deux oledbcommnds utilisés pour mettre à jour une table dans une base de données. L'un d'eux fonctionne (ajouter des données aux champs vides) mais l'autre conçu pour vider les données ne fonctionne pas.Commande UPDATE ne pas mettre à jour les données
Première mise à jour commnd qui fonctionne (ajoute des valeurs à vider les données):
conn.Open();
OleDbDataAdapter adapter1 = new OleDbDataAdapter();
adapter3.UpdateCommand = conn.CreateCommand();
adapter3.UpdateCommand.CommandText = "UPDATE table SET Occup=Yes, Profesor=?";
adapter3.UpdateCommand.Parameters.AddWithValue("p1", "name");
adapter3.UpdateCommand.ExecuteNonQuery();
conn.Close();
Le second, qui ne fonctionne pas (remplace les valeurs)
conn.Open();
OleDbDataAdapter adapter3 = new OleDbDataAdapter();
adapter3.UpdateCommand = conn.CreateCommand();
adapter3.UpdateCommand.CommandText = "UPDATE table SET Occup=No, Profesor=?";
adapter3.UpdateCommand.Parameters.AddWithValue("p1", "replace_prof_name");
adapter3.UpdateCommand.ExecuteNonQuery();
conn.Close();
Lors de l'exécution du second code, Je ne reçois aucune erreur. J'ai mis un compteur et montre le bon nombre d'opérations mais je ne vois pas de modifications.
Occup = Non dans le second exemple semble causer des problèmes - "Non" peut être un mot réservé SQL afin si elle est exécutée sans échapper (comme Occup = 'Non') alors la requête peut se comporter étrange – tchrikch
vous faites référence 'adapter3' au lieu de' adapter1' –
@tchrikch It ** est ** un mot-clé réservé mais cela devrait donner une erreur as: '" Syntaxe incorrecte proche de ... "'. OP dit qu'il n'a pas eu d'erreurs. –