Maison >base de données >tutoriel mysql >Pourquoi mon instruction SQL INSERT avec des paramètres échoue-t-elle et comment puis-je y remédier ?

Pourquoi mon instruction SQL INSERT avec des paramètres échoue-t-elle et comment puis-je y remédier ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-01 07:48:11722parcourir

Why is my SQL INSERT statement with parameters failing, and how can I fix it?

Paramètres SQLParameter - Insérer à l'aide de paramètres

Question :

Lors de la tentative d'insertion d'un enregistrement dans une base de données à l'aide d'un SQL commande, l’exécution du code échoue. Le code fourni comprend :

SqlCommand comand = new SqlCommand("INSERT INTO Product_table Values(@Product_Name,@Product_Price,@Product_Profit,@p)", connect);
SqlParameter ppar = new SqlParameter();
ppar.ParameterName = "@Product_Name";
ppar.Value = textBox1.Text;
MessageBox.Show("Done");
comaand.Parameters.Add(ppar);

Réponse :

Pour réussir l'insertion d'un enregistrement à l'aide de paramètres, le code suivant doit être utilisé :

SqlCommand cmd = new SqlCommand("INSERT INTO Product_table Values(@Product_Name, @Product_Price, @Product_Profit, @p)", connect);
cmd.Parameters.Add("@Product_Name", SqlDbType.NVarChar, ProductNameSizeHere).Value = txtProductName.Text;
cmd.Parameters.Add("@Product_Price", SqlDbType.Int).Value = txtProductPrice.Text;
cmd.Parameters.Add("@Product_Profit", SqlDbType.Int).Value = txtProductProfit.Text;
cmd.Parameters.Add("@p", SqlDbType.NVarChar, PSizeHere).Value = txtP.Text;
cmd.ExecuteNonQuery();

Explication :

  • Évitez d'utiliser AddWithValue, car cela peut entraîner des problèmes de conversion de type de données.
  • Spécifiez les noms de colonnes dans l'instruction INSERT (par exemple, @Product_Name, @Product_Price) et fournissez leurs valeurs correspondantes à l'aide de cmd.Parameters.Add(...).
  • Spécifiez le type de données de chaque paramètre à l'aide de SqlDbType.
  • Utilisez cmd.ExecuteNonQuery() pour exécuter la commande et insérer l'enregistrement dans la base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn