IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

Impossible d'insérer des données dans une simple base access


Sujet :

Accès aux données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Impossible d'insérer des données dans une simple base access
    Bonjour,

    Je viens de passer plusieurs heures à tenter en vain de comprendre pourquoi un simple INSERT avec des valeurs de type decimal dans une table ne fonctionne pas.

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    decimal prix;
    OleDbConnection moon = new OleDbConnection();
    moon.ConnectionString =@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\c\Desktop\xxx.mdb";
     
    string sqlIns = "INSERT INTO x ( date_m, prix)" +
                                   " VALUES (@date_en,@prix,)";
    moon.Open();
    OleDbCommand moon_cmd = new OleDbCommand(sqlIns);
    moon_cmd.Connection = moon;
    try{
     
    prix = 12;
    moon_cmd.Parameters.AddWithValue("@date_now", DateTime.Today.ToShortDateString());
     
    moon_cmd.Parameters.Add("@prix", OleDbType.Decimal).Value=  prix;
     
    // j'ai essayé aussi cela mais rien non plus
    // moon_cmd.Parameters.Add("@prix", OleDbType.Numeric).Value=  prix;
     
          moon_cmd.ExecuteNonQuery();
          moon_cmd.Dispose();
          moon_cmd = null;
     
    }
    catch (Exception ex)
    {
                       throw new Exception(ex.ToString(), ex);
     
    }
    finally
    {
                   moon.Close();
    }
    Impossible d'insérer la donnée prix que ce soit dans un type currency ou Number de type decimal avec 2 de précision dans accessdb.

  2. #2
    Membre régulier
    Inscrit en
    avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Bonjour,

    Quelle erreur as-tu ?
    Est-ce un problème de connection string, de base de données, de code, de requête ?

    Sinon je n'ai pas regardé en détail mais c'est normal que tu ais une virgule après @prix dans ta requête ?
    Et ton prix, c'est un point ou une virgule qui fait office de décimal ? (ce devrait être un point).
    Je te conseille d'essayer avec une valeur en dur pour le moment plutôt que d'essayer de toute faire fonctionner d'un coup.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour ton aide
    la virgule est juste une erreur de collage .
    En dur ça marche mais avec le param j'ai un datatype mismatch

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'ai trouvé mon problème il s'agissait d'un champs que j'avais nommé "Dec" dans access où je n'avais pas moyen d'insérer des données.

    Je pense que Dec est un mot clé.

  5. #5
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    Je pense que Dec est un mot clé.
    ou plutot une erreur de typage comme expliqué par le message d'erreur.


    pense au bouton résolu
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    string sqlIns = "INSERT INTO x ( date_m, prix)" + " VALUES (@date_en,@prix,)";
    ...
    moon_cmd.Parameters.AddWithValue("@date_now", DateTime.Today.ToShortDateString());
    Il n'y aurait pas une erreur ?

    Sinon, de mémoire, il me semble que pour MsAccess on doit remplacer
    VALUES (@date_en,@prix,) par VALUES (?,?,)
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible d'insérer des données dans une table
    Par totot dans le forum Oracle
    Réponses: 2
    Dernier message: 14/03/2015, 14h41
  2. Access: Insérer des données dans une table acces
    Par Malika_AL dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/01/2008, 22h41
  3. [SQL] Insérer des données dans une table
    Par wonga dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 01/08/2007, 12h00
  4. Insérer des données dans une BD depuis un fichier .bat
    Par kurkaine dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/11/2006, 08h31
  5. Réponses: 26
    Dernier message: 01/07/2006, 13h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo