-1
私は入力をテキストボックスから保存するアプリケーションを作成していますが、Submit
をクリックすると、データベースにテキストボックスに何を入力してもこのエラーが発生します。エラー "System.Data.SqlClient.SqlException"がアプリケーションのデバッグ時に発生しました
System.Data.dllで 'System.Data.SqlClient.SqlException'型の例外が発生しましたが、ユーザーコードで処理されませんでした。追加情報:キーワード「表」の近くの構文が正しくありません。
ここに次のコードがあります。
protected void Button1_Click(object sender, EventArgs e)
{
String p = UniqueNumber();
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings
["ConnectionString"].ConnectionString);
con.Open();
String str = "insert into Table(uniqueno, name, age, number) values('"
+ Label1.Text + "','" + txtName.Text + "','" + txtAge.Text + "','" + txtNumber.Text + "')";
SqlCommand cmd = new SqlCommand(str, con);
cmd.ExecuteNonQuery();
con.Close();
Session["id"] = Label1.Text;
Session["name"] = txtName.Text;
try
{
Response.Redirect("unique.aspx");
}
catch
{
Label1.Text = "Please enter correct details....";
this.Label1.ForeColor = Color.Red;
}
}
SQLインジェクションの脆弱性。パラメータ化されたクエリを使用する –
実際には、アプリケーションを実行するときではなく、アプリケーションをデバッグしようとしているときにのみエラーが発生するのでしょうか?実行中に問題が発生した場合は、「テーブルに挿入しようとしたとき」に質問を変更してください。 –
もこの行を変更してください。Response.Redirect( "unique.aspx"); '' Response.Redirect( "〜unique.aspx" ); 'PostBacksに慣れていて、それがどのように働いているのかと期待しています。SQL Insertコマンドに渡す値をデバッグするときに、空でもなく空でもないことを確認し、' Parameterized Query's'を読み、 'Table'はSQLの予約語であるため、この' [Table] 'のような角括弧で囲んだ名前です – MethodMan