C# Une insertion

Résolu
Bonjour,

Je vous écris parce que je suis désespéré ça fait maintenant 2 semaines que je suis bloqué à un problème tout bête, j'ai mon code d'insertion, il n'y a pas d'erreurs mais lorsque j'exécute le projet il me surligne : "cmd.executenonquery();" en me disant que mes colonnes ne sont pas valides ... je vous met mon code ! Merci d'avance !

SqlCommand cmd = new SqlCommand("INSERT INTO MAGASINS ('MAGNOM','MAGADRESSE','MAGVILLE','MAGCP','MAGTEL','MAGFAX','MAGHEUREOUVERTURE','MAGHEUREFERMETURE') VALUES ('@MAGNOM','@MAGADRESSE','@MAGVILLE','@MAGCP','@MAGTEL','@MAGFAX','@MAGHEUREOUVERTURE','@MAGHEUREFERMETURE')", cs);
cmd.Parameters.Add("@MAGNOM", SqlDbType.VarChar);
cmd.Parameters.Add("@MAGADRESSE", SqlDbType.VarChar);
cmd.Parameters.Add("@MAGVILLE", SqlDbType.VarChar);
cmd.Parameters.Add("@MAGCP", SqlDbType.Int);
cmd.Parameters.Add("@MAGTEL", SqlDbType.VarChar);
cmd.Parameters.Add("@MAGFAX", SqlDbType.VarChar);
cmd.Parameters.Add("@MAGHEUREOUVERTURE", SqlDbType.DateTime);
cmd.Parameters.Add("@MAGHEUREFERMETURE", SqlDbType.DateTime);
cmd.Parameters["@MAGNOM"].Value = efNomMag.Text;
cmd.Parameters["@MAGADRESSE"].Value = efAdresseMag.Text;
cmd.Parameters["@MAGVILLE"].Value = efVilleMag.Text;
cmd.Parameters["@MAGCP"].Value = efCPMag.Text;
cmd.Parameters["@MAGTEL"].Value = efTelMag.Text;
cmd.Parameters["@MAGFAX"].Value = efFaxMag.Text;
cmd.Parameters["@MAGHEUREOUVERTURE"].Value = efHeureOuv.Text;
cmd.Parameters["@MAGHEUREFERMETURE"].Value = efHeureFer.Text;
cs.Open();
cmd.ExecuteNonQuery();
cs.Close();

:)

1 réponse

  1. Contributeur
    Bonjour,
    je pense que ça vient de ton ton ["@MAGCP"], comme c'est un nombre, ne met pas d'apostrophes.
    1. Oui j'ai essayé mais si j'enlève les apostrophes, il y a une erreur comme quoi le programme ne reconnait pas MAGCP
    2. Contributeur
      Essaye au pire de le retirer voir si ça vient bien de ça.
    3. Non ça ne marche pas, merci quand même!
    4. Tu as totalement raison, c'est bien [@MAGCP] qui me pose problème, maintenant le programme me souligne "this.mAGASINSTableAdapter.Fill(this.gOSDataSet.MAGASINS);" en me disant que "le format de la chaîne d'entrée est incorrect. Impossible de stocker <@MAGCP> dans la colonne <MAGCP>. Type attendu est Int32.

      Pourrais-tu m'aider s'il te plaît ?
    5. Contributeur
      le type doit être mauvais dans ta déclaration
      cmd.Parameters.Add("@MAGCP", SqlDbType.Int);
      est tu sure que ta colone ne contient bien que des nombres? sinon tu devrai essayer en la passant en varchar et remettre les guillemets