SQL从表语法错误中删除行

时间:2017-01-07 16:59:03

标签: c# sql asp.net ms-access

removebutton_Click

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命令RemoveSQL将从MS中的orderItems表中删除整行事务。根据交易号(carttransactionlabel)进行访问。

enter image description here

但是,当我尝试单击“删除”按钮时,会出现此错误 enter image description here

显然SQL语句中存在语法错误,我似乎无法发现。帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

在运行之前打印出你的SQL!至少有一些问题会很明显。

您有以下代码:

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

如果您打印出来,它将如下所示:

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

错误和修复应该是显而易见的。

注意:您的代码中可能还有其他问题。