2016-11-24 2 views
-2

idがユーザーによって選択された値と等しいテーブルの1つのフィールドを更新する必要があります。受諾と拒否のボタンがあり、受諾を押すと、拒否を押したときにテーブルにYESとNOが追加されます。私は質問に問題があるようです。 これは私のコードです:ここで、ASP内のsql

protected void AcceptButton_Click(object sender, EventArgs e) 
{ 
     string accepted = "YES"; 
     SqlCommand cmd = new SqlCommand("UPDATE Journey SET AcceptedJourney = @Accept WHERE JourneyId = '"+AcceptJourney.SelectedValue+"')"); 
     cmd.Connection = connection; 
     cmd.Parameters.AddWithValue("@Accept", accepted); 
     connection.Open(); 
     cmd.ExecuteNonQuery(); 
     connection.Close(); 

     Response.Redirect("~/Account/PassengerDashboard.aspx"); 
} 

私が手にエラーがタイプの例外

は「System.Data.SqlClient.SqlException」のSystem.Data.dllで発生したが、ユーザーに処理されませんでしたコード 追加情報: ')'の近くの構文が正しくありません。

+1

質問にはどのような問題がありますか?編集:クエリの最後に ')'があります。 – RandomStranger

+0

Imにエラーが発生しました ')'の近くに誤った構文があります。 – MatKrause

+0

なぜJourneyIdにはAcceptのパラメータを使用していますか?これは矛盾しており、潜在的にSQLインジェクションに開放されています。 – ADyson

答えて

0

SqlCommand cmd = new SqlCommand("UPDATE Journey SET AcceptedJourney = @Accept WHERE JourneyId = '"+AcceptJourney.SelectedValue+"';"); 
1

誤ったの下に試してみてください。

"UPDATE Journey SET AcceptedJourney = @Accept WHERE JourneyId = '"+AcceptJourney.SelectedValue+"')" 

正しい:

"UPDATE Journey SET AcceptedJourney = @Accept WHERE JourneyId = '"+AcceptJourney.SelectedValue+"';" 

私もADysonに同意する必要があります。これにより、SQLインジェクションに脆弱になります。 Entity Frameworkまたはその他のオプションを見てください。