2017-01-07 4 views
0

removebutton_ClickSQLは、私がここで達成しようとしていますどのようなテーブルの構文エラーから

protected void removebutton_Click(object sender, EventArgs e) 
{ 
    string RemoveSQL; 

    OleDbConnection mDB = new OleDbConnection(); 
    mDB.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;Data source=" 
          + Server.MapPath("~/App_Data/database.accdb"); 
    mDB.Open(); OleDbCommand cmd; 

    Button removebutton = (Button)sender; 
    Label carttransactionlabel = (Label)removebutton.Parent.FindControl("carttransactionlabel"); 

    int intTransNo = int.Parse(carttransactionlabel.Text); 

    RemoveSQL = "DELETE FROM orderItems" 
       + "WHERE iTransaction_No = @TransNo"; 

    cmd = new OleDbCommand(RemoveSQL, mDB); 

    cmd.Parameters.Add("@TransNo", OleDbType.Integer).Value = intTransNo; 

    cmd.ExecuteNonQuery(); 

    mDB.Close(); 
} 

を行を削除し、ユーザーがremovebuttonボタンをクリックすると、SQLコマンドRemoveSQLorderItemsからのトランザクションの行全体を削除するということです取引番号(carttransactionlabel)に基づくMS Accessのテーブル。私はRemoveButtonをボタンをクリックしようとすると、

表は enter image description here

ただし、このエラーは enter image description here

は、どうやら私が発見していないようすることができ、SQL文に構文エラーがあります表示されます。ヘルプをいただければ幸いです。

+6

orderItemsとWHEREの間にスペースがありません。 –

答えて

2

実行前にSQLを印刷してください!少なくともいくつかの問題が明らかになります。

あなたはこのコードを持っている:

RemoveSQL = "DELETE FROM orderItems" + "WHERE iTransaction_No = @TransNo"; 

あなたがこれをプリントアウトした場合、それは次のようになります。明らかである

RemoveSQL = "DELETE FROM orderItemsWHERE iTransaction_No = @TransNo"; 

エラーと修正を。

注:コードに他の問題がある可能性があります。

関連する問題