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

C# Discussion :

comment fais t-on un insert


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 26
    Par défaut comment fais t-on un insert
    Bonjour,

    J'ai réussi a faire un select, mais comment fais ton les insert en csharp,
    j'ai ce message lorsque j'essaye d'executer le code :

    Aucune valeur donnée pour un ou plusieurs des paramètres requis.

    ce message apparait au niveau de cette ligne de code :
    rdr = cmd.ExecuteNonQuery();

    J'ai verifier mes 2 variables (nouvelle_pizza et nouveau_ingredient) sont bien rempli.

    D'avance merci

    Voici le 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
    private void button1_Click(object sender, EventArgs e)
            {
                nouvelle_pizza = textBox3.Text;
                nouveau_ingredient = textBox4.Text;
                MessageBox.Show("pizza"+nouvelle_pizza);
                MessageBox.Show("ingredient"+nouveau_ingredient);
                chaine = "provider=microsoft.jet.oledb.4.0;data source=" + "pizza.mdb";
                cnx = new OleDbConnection(chaine);
                sql = "insert into pizza (num_pizza,nom_pizza,ingredient) values (8,@nouvelle_pizza,@nouveau_ingredient)";
                OleDbParameter prm = new OleDbParameter("@nouvelle_pizza", OleDbType.VarChar);
                prm.Value = nouvelle_pizza;
                OleDbParameter prm1 = new OleDbParameter("@nouveau_ingredient", OleDbType.VarChar);
                prm1.Value = nouveau_ingredient;
                cmd = new OleDbCommand(sql, cnx);
                cnx.Open();
                rdr = cmd.ExecuteNonQuery();

  2. #2
    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
    Par défaut
    tu créés des paramètres mais tu ne les ajoutes pas à ta commande donc le msg d'erreur est clair, il attend des paramètres qui sont vides. c'est comme si tu remplissais deux bidons d'essence mais que tu ne les mettais pas dans ta voiture...

  3. #3
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Ajoute les paramètres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cmd.Parameters.Add(prm);
    cmd.Parameters.Add(prm1);

  4. #4
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 26
    Par défaut
    Bonsoir,

    Merci beaucoup, pour vos réponses, effectivement cela marche.

    Maintenant je voudrais, avant d'insérer verifier s'il n'existe pas deja en regardant sur nom_pizza, mais (presque comme d'habitude!!) cela ne marche pas.

    L'erreur est : La référence d'objet n'est pas définie à une instance d'un objet.

    à la ligne cnx2.Open()

    D'avance un grand merci

    Voici le 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
    35
    36
    37
    38
     
    private void button1_Click(object sender, EventArgs e)
            {
                nouvelle_pizza = textBox3.Text;
                nouveau_ingredient = textBox4.Text;
                MessageBox.Show("pizza" + nouvelle_pizza);
                MessageBox.Show("ingredient" + nouveau_ingredient);
     
                sql2 = "select nom_pizza from pizza where nom_pizza= @nouvelle_pizza ";
                OleDbParameter prm = new OleDbParameter("@nouvelle_pizza", OleDbType.VarChar);
                prm.Value = nouvelle_pizza;
                cmd2 = new OleDbCommand(sql2, cnx2);
                cmd2.Parameters.Add(prm);
                cnx2.Open();
                rdr2 = cmd2.ExecuteReader();
                while (rdr2.Read())
                {
                    prix = rdr2[0].ToString();
                    MessageBox.Show("newpizza" + prix);
                }
                rdr2.Close();
                cnx.Close();
     
                if (prix == "0")
                {
                    OleDbParameter prm1 = new OleDbParameter("@nouveau_ingredient", OleDbType.VarChar);
                    prm1.Value = nouveau_ingredient;
     
                    chaine = "provider=microsoft.jet.oledb.4.0;data source=" + "pizza.mdb";
                    cnx = new OleDbConnection(chaine);
                    sql = "insert into pizza (nom_pizza,ingredient) values (@nouvelle_pizza,@nouveau_ingredient)";
     
                    cmd = new OleDbCommand(sql, cnx);
                    cmd.Parameters.Add(prm);
                    cmd.Parameters.Add(prm1);
                    cnx.Open();
                    rdr = cmd.ExecuteNonQuery();
                }

  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
    Par défaut
    essaie de comprendre les messages d'erreur sinon tu ne progresseras pas

    ici, ton objet cnx2 est vide. il n'est pas instancié, une fois encore c'est logique que ca plante

    apprend à utiliser le debugueur de visual studio et les points d'arrêt, ca t'aidera au début pour comprendre les principales petites erreurs que l'on a tous fait un jour

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    D'ailleurs je crois que c'est cnx que tu veux utiliser nan ?

  7. #7
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 26
    Par défaut
    Merci beaucoup pour votre aide. Tout marche, c'est génial!!

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

Discussions similaires

  1. Comment changer la variable 'delayed insert timeout'
    Par CinePhil dans le forum Outils
    Réponses: 0
    Dernier message: 20/02/2008, 11h07
  2. Réponses: 2
    Dernier message: 13/12/2007, 22h58
  3. Réponses: 2
    Dernier message: 04/07/2006, 15h59
  4. Comment savoir si une requete INSERT INTO a bien marché ?
    Par Whattt dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 29/06/2006, 08h06
  5. Réponses: 4
    Dernier message: 13/06/2006, 13h45

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