Requête update access en c# [Résolu]

Signaler
Messages postés
14
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
12 juin 2007
-
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
-
Je suis newbi en c#
mon probléme est que lorsque je fait une requête update il me donne le message suivants:
"Type de données incompatible dans l'expression du critère."

mon code est assez simple le voila

 string conStr = @"Provider=Microsoft.JET.OLEDB.4.0;" + @"data source=DermatoSoft_DB.mdb";
            dataGridView1.DataSource = null;
            ds = new DataSet();      
            conn = new OleDbConnection(conStr);
            command = conn.CreateCommand();
            conn.Open();
            command.CommandText = "UPDATE patients SET Nom='" + textBox17.Text + "',Prenom ='"+ textBox8.Text                 + "',Date_de_naissance '" + textBox10.Text + "',Adresse'" + textBox2.Text + "',Telephone = '"
                + textBox6.Text + "',Groupe_sanguin ='" + comboBox2.Text + "',Maladie = '" + textBox9.Text
                + "',Date_arrivee ='"+ textBox16.Text + "' where Matricule = " + comboBox3.Text;
            adapter = new OleDbDataAdapter(command);

            adapter.Fill(ds);
              conn.Close();

   merci
A voir également:

9 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
La doc contient des exemples d'utilisation de requêtes paramétrée (par position uniquement avec OleDb) :
http://msdn2.microsoft.com/en-us/library/system.data.oledb.oledbcommand.parameters(vs.80).aspx
http://msdn2.microsoft.com/en-us/library/yy6y35y8(VS.80).aspx

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Salut,


Pour l'erreur je ne sais pas, par contre je peux déjà te dire que tu devrais regarder du côté des requêtre paramétrées au lieu de faire des concat.
Matricule ne sera pas un type chaine par hasard ?

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
2
tu dois avoir une conversion a faire parmis tes champs(ex: ceratins champs doivent etre de type int et tu passes du texte)
tu peux utiliser Convert
ex : Convert.ToInt32(textbox1.text)
Messages postés
14
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
12 juin 2007

non matricule est un numeroauto en access
je vais l'essayer

   merci
Messages postés
14
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
12 juin 2007

mais je me demandais comment je peut la faire une requête paramétrer
   merci
Messages postés
14
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
12 juin 2007

bon merci mais ca na pas marché
je croit que ces une chaîne de caractére cette requête donc ca na aucun sens de cinvertir un élement en entier et le concaténer

svp aider moi ,je ne sais plus quoi faire

   merci
Messages postés
14
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
12 juin 2007

je vais voir les site que tu ma donné

   merci
Messages postés
14
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
12 juin 2007

bon j'ai lu les page que tu ma donné
et sincérement je n'ai rien compris
d'un coté parceque je suis nul en anglais, d'un autre  parcequ'il n'y a pas comment faire une requête update

alors si vous pouvez m'aider!!!
   merci
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
2
il ne faut pas mettre les numerauto dans les requetes car justement ils sont générés automatiquement