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

Windows Forms Discussion :

Exécution d'une requète MySQL


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut Exécution d'une requète MySQL
    Rien de plus simple me direz-vous!

    Je ne suis qu'a moitié d'accord avec vous.

    Voici mon problème, j'utilise la dll MySQLDriverCS. je souhaite exécuter un INSERT INTO.

    Voici mon code et voici l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    MySQLDriverCS.MySQLCommand cmd = new MySQLDriverCS.MySQLCommand();
               MySQLDriverCS.MySQLDataReader MyReader;
     
               cmd.CommandText = "INSERT INTO inventaire (CODE_CIP_PROD) VALUES (produit.CODE_CIP_PRODUIT)";
     
               //MyReader = cmd.ExecuteReaderEx();

    Erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MySQLDriverCS Exception : Connection must be open

    Des idées ? Des pistes de solutions me permettant d'avancer dans ce que je veux faire ? ^^

    Merci.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    RECHERCHER est le mot clé !
    La reponse ici

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    Désolé skunkies mais je ne vois pas la réponse à mon problème dans le topic que tu m'as envoyé.

    Dans son topic, les values se trouvent dans des texbox, moi c'est dans une autre table.

    "produit.CODE_CIP_PRODUIT" colonne CODE_CIP_PRODUIT de la table produit.

    Merci


    *******EDIT******

    Après quelques modifications, tu avais raison, une partie de la réponse se trouvait dans le topic précédent

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     MySQLDriverCS.MySQLCommand cmd = new MySQLDriverCS.MySQLCommand();
     
               cmd.Connection = conn;
               cmd.CommandText = "INSERT INTO inventaire (CODE_CIP_PROD) SELECT p.CODE_CIP_PRODUIT FROM produit p";
     
               cmd.ExecuteNonQuery();
     
               conn.Close();
    Nouvelle erreur, mais ce coup ci ce n'est plus une question de code ect.. C'est une question de requête :

    "Wrong query. Duplicate entre 44804879 for key 1 INSERT INTO inventaire ect..."

    J'ai vérifié la table, elle contient un grand nombre de nimporte qu'elle chiffre qui ne veulent rien dire


    *********REEDIT*****

    Changement de requête :
    INSERT INTO inventaire (CODE_CIP_PROD) SELECT p.CODE_CIP_PRODUIT FROM produit p, inventaire i, prix_achat_admin pa WHERE p.CODE_CIP_PRODUIT = i.CODE_CIP_PROD AND pa.ID_TYPE_ACHAT = 2"

    Ce qui me donne aucune erreur, tout fonctionne à une différence pret : Rien ne se cré dans la bdd. je dois donner trop de contrainte :/

  4. #4
    Membre régulier Avatar de Roach-
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 108
    Points
    108
    Par défaut
    Voila un insert fait dans une table remplie par une autre table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO inventaire 
    (CODE_CIP_PROD) 
    VALUES
    ((SELECT p.CODE_CIP_PRODUIT FROM produit p, inventaire i, prix_achat_admin pa WHERE p.CODE_CIP_PRODUIT = i.CODE_CIP_PROD AND pa.ID_TYPE_ACHAT = '2'))
    Cette erreur : Duplicate entre 44804879 for key 1 INSERT INTO inventaire

    Est causé lorsque tu ajoute une ligne dans une table en lui indiquant un ID déjà utilisé.

    Il faut donc voir si ta structure de table est bien faite et ne cause pas de conflit. Ensuite assure toi que le SELECT qui donne la valeur de l'insertion retourne bien une bonne valeur. Selon moi ton SELECT n'est pas correct. Pour pouvoir t'aider plus j'aurais besoin de savoir ta structure de db.

    EN espérant que c'est ce que tu cherche a faire.
    Roach aka Jean-François Dufour

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

Discussions similaires

  1. unexpected character : erreur à l'exécution d'une requête MySQL avec PHP
    Par sub_zero dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 02/02/2015, 18h22
  2. Limiter le temps d'exécution d'une requête MySQL
    Par Ceubex dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/12/2014, 21h22
  3. exécution d'une requête mysql
    Par laurentSc dans le forum Langage
    Réponses: 7
    Dernier message: 08/10/2011, 10h41
  4. Exécuter une requête MySQL en php sur serveur OVH
    Par phebus1204 dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/04/2009, 16h41
  5. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11

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