SqlConnection con = new SqlConnection(@"Data Source=shashi-PC\SQLEXPRESS;Initial Catalog=payroll;Integrated Security=True;Pooling=False");
SqlCommand com = new SqlCommand("insert into Leave_trans values(" + txtempid.Text + ",'" + ddlleavetype.SelectedValue + "'," + txtallowedays.Text + "," + txtpendingleave.Text + ",'" + txtleavefrom.Text + "','" + txtleaveto.Text + "'," + txttotalleaves.Text + ")");
com.Connection = con;
con.Open();
com.ExecuteNonQuery();
Response.Write("<script>alert('Leave data saved successfully')</script>");
con.Close();
0
A
答えて
0
私は問題があなたの質問にあると思います。データベース列のデータ型を提供していませんでした。しかし、あなたの質問から、TextBox
のテキストとDropDownList
の選択された項目が挿入されていると仮定します。 TextBox
テキストの場合は、常に文字列型の値が得られ、string
を列に挿入するには、前後に一重引用符''
を使用する必要があります。しかし、あなたのクエリでは、あなたの値のパラメータのいくつかのために引用を使用していませんでした。私は前提を作り、あなたに質問をしました。この更新されたものを試してください。
SqlConnection con = new SqlConnection(@"Data Source=shashi-PC\SQLEXPRESS;Initial Catalog=payroll;Integrated Security=True;Pooling=False");
SqlCommand com = new SqlCommand("insert into Leave_trans values(" + "'" + txtempid.Text + "'", "'" + ddlleavetype.SelectedValue + "'","'" + txtallowedays.Text + "'","'" + txtpendingleave.Text + "'", "'" + txtleavefrom.Text + "'","'" + txtleaveto.Text + "'", "'" + txttotalleaves.Text + "')");
com.Connection = con;
con.Open();
com.ExecuteNonQuery();
Response.Write("<script>alert('Leave data saved successfully')</script>");
しかし、私はあなたのテーブルの主キーのデータ型としてstring
を使うべきではありませんが - あなたのためにいくつかの提案を持っている、それがint
タイプでなければなりませんし、別の一つは、あなたがから選択した項目のint
id
を取るべきですあなたのDropDownList
はテキストではありません。
1
これは直接あなたの質問に答えていませんが、あなたは(SQLインジェクションなどhereまたはhereについて読むためにいくつかの時間がかかるしてください)SQLクエリを構築するために、ユーザが入力し、使用文字列連結を取るべきではありません。
代わりに完全なクエリを連結し、あなたは、自分の価値観のためのプレースホルダとしてSqlParameter
のインスタンスを使用する必要があります。例:ところで
var com = new SqlCommand(
"insert into Leave_trans values(@empId, @leaveType, @allowedDays, ...)");
com.Parameters.Add(new SqlParameter("@empId", txtempid.Text));
com.Parameters.Add(new SqlParameter("@leaveType", ddlleavetype.SelectedValue));
com.Parameters.Add(new SqlParameter("@allowedDays", txtalloweddays.Text));
...
:あなたの問題の原因は、あなたが正しくないということである内側のご入力をシングルクオートクエリ(例:txtempid.Text
は一重引用符ではありません)。 SqlParametersを使用すると、その問題が解決されます。
関連する問題
- 1. '、'の近くの構文が正しくありません。
- 2. 'sp_executesql'の近くの構文が正しくありません
- 3. '00'の近くの構文が正しくありません
- 4. ms SQLエラー:キーワード 'on'の近くの構文が正しくありません。
- 5. SQL Server Express - '、'の近くの構文が正しくありません
- 6. キーワード 'table'の近くの構文が正しくありません
- 7. SQLクエリエラー "キーワード 'IS'の近くに構文が正しくありません。"
- 8. SQLの ':'の近くの構文が正しくありません
- 9. System.Data.SqlClient.SqlException:キーワード 'テーブル'の近くの構文が正しくありません
- 10. 'text data'の近くの構文が正しくありません
- 11. 列名の変更: 'SP_RENAME'付近の構文が正しくありません。
- 12. ':'付近の構文が正しくありません。 SQLイメージ更新
- 13. 'TO'付近の構文が正しくありません。 Expecting DOUBLECOLON
- 14. エラー[42000] [Microsoft] [SQLネイティブクライアント] [SQL Server]キーワード 'SET'の近くの構文が正しくありません
- 15. コンマ区切りの構文が正しくありません
- 16. ')'の構文が正しくありません
- 17. 最新の 'nvarchar'の近くにある構文が正しくありません。ASP.NET Gridview
- 18. キーワード 'current_timestamp'の近くの構文が正しくありません - ただし、1つのデータベースのみ
- 19. SQL Server:メッセージ102、レベル15、状態1、行2メッセージ '='の近くの構文が正しくありません
- 20. asp.netアプリケーションでクエリの構文が正しくありません
- 21. ADDの近くにSQL構文エラーがあります
- 22. System.Data.SqlClient.SqlException:構文が正しくありません。 '
- 23. Verilog構文エラーが常に近くにあります
- 24. 予期せぬトークン `fi 'の近くに構文エラーがあります
- 25. カミソリの構文が正しくありませんか? Html.DropDownListのjquery関数onchange
- 26. メッセージ102、レベル15、状態1、行1 '<'付近の構文が正しくありません
- 27. "ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません"
- 28. エラー:エラー1280:インデックス名が正しくありません
- 29. のSQLConnectionエラー:付近に正しくない構文「)」
- 30. @media、-webkit-min-device-pixel-ratio: - CSSルールの構文が正しくありません
私のエラーの解決策を教えてください.... 私のコードは上記の通りです –
解決策を尋ねる必要はありません。そのため、まず質問をしました。また、あなたのパラメータの1つがnullまたは予期しない値であると推測しています。これらの価値観がわからなければ、私たちはあなたを助けることができません。そこにブレークポイントを置き、完成したコマンド文字列を取得します。 – Ageonix