Bonjour,
Il y a deja pas mal de posts sur cette erreur mais impossible de résoudre la mienne.
Voici une requête que j'execute sur une base de donnée Access 2007
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
string query = "INSERT INTO t_outgoingcalls "
+ "(CallingDate, MotifId, UtilisateurId, AgendaId) "
+ "SELECT @CallDate, @MotifId, UtilisateurId, (SELECT AgendaId FROM t_medecins WHERE Nom = @DrName) "
+ "FROM t_utilisateurs WHERE Utilisateur = @User";
// ouverture connexion
connexion.Open();
OleDbCommand CommandAdd = new OleDbCommand(query, connexion);
CommandAdd.Parameters.Add("@CallDate", OleDbType.Date).Value = DateTime.Now;
CommandAdd.Parameters.Add("@MotifId", OleDbType.Integer).Value = motif;
CommandAdd.Parameters.Add("@DrName", OleDbType.Char).Value = drName;
CommandAdd.Parameters.Add("@User", OleDbType.Char).Value = user; |
La requète est donc :
INSERT INTO t_outgoingcalls (CallingDate, MotifId, UtilisateurId, AgendaId) SELECT @Date, @MotifId, UtilisateurId, (SELECT AgendaId FROM t_medecins WHERE Nom = @DrName) FROM t_utilisateurs WHERE Utilisateur = @User
L'execution retourne "type de données incompatible dans l'expression du critère"
C'est le paramètre @DrName qui pose problème car si on met la valeur de DrName en dûr ( WHERE Nom = 'blabla' ) la requete s'execute sans problème.
La variable drName est une string, et le champ Nom est de type Texte.
Pouvez-vous m'aider?
Merci,
Guillaume
Partager