ホームページ > データベース > mysql チュートリアル > パラメーターを含む SQL INSERT ステートメントが失敗するのはなぜですか?また、それを修正するにはどうすればよいですか?

パラメーターを含む SQL INSERT ステートメントが失敗するのはなぜですか?また、それを修正するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-01 07:48:11
オリジナル
729 人が閲覧しました

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

SqlParameter パラメータ - パラメータを使用して挿入

質問:

SQL を使用してデータベースにレコードを挿入しようとする場合コマンドを実行すると、コードの実行は失敗します。提供されたコードには次のものが含まれます:

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);
ログイン後にコピー

回答:

パラメータを使用してレコードを正常に挿入するには、次のコードを実行する必要があります。使用:

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();
ログイン後にコピー

説明:

  • データ型変換の問題が発生する可能性があるため、AddWithValue の使用は避けてください。
  • 列を指定してくださいINSERT ステートメント内の名前 (例: @Product_Name、@Product_Price) を使用して、対応する値を指定します。 cmd.Parameters.Add(...).
  • SqlDbType を使用して各パラメーターのデータ型を指定します。
  • cmd.ExecuteNonQuery() を使用してコマンドを実行し、レコードをデータベースに挿入します.

以上がパラメーターを含む SQL INSERT ステートメントが失敗するのはなぜですか?また、それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート