Не удается отправить изменения в базу данных или элементы управления страницей

#asp.net #linq

#asp.net #linq

Вопрос:

У меня есть довольно простая страница, состоящая из двух выпадающих списков, заполненных из базы данных, и кнопки. Назначение страницы довольно просто — позволить пользователям удалять запись из базы данных. При нажатии кнопки выполняется простой запрос LINQ для удаления намеченной цели и записи из выпадающих списков, но это не работает, если ответ не перенаправлен внутри этой функции, даже если SubmitChanges() был вызван. Почему это произошло?

Редактировать: Код

 protected void Page_Init(object sender, EventArgs e)
{
    var result = Database.DB.Data.GetTable<Database.tbl_module_>().Where(module => module.deptCode == ((User)Session["user"]).deptCode);
    foreach (var row in result)
    {
        this.listModuleCode.Items.Add(new System.Web.UI.WebControls.ListItem(row.code));
        this.listModuleTitle.Items.Add(new System.Web.UI.WebControls.ListItem(row.title));
    }
}
protected void Delete_Click(object sender, EventArgs e)
{
    var DB = Database.DB.Data;
    var table = DB.GetTable<Database.tbl_module_>();
    var result = table.Where(module => module.deptCode == ((User)Session["user"]).deptCode amp;amp; module.code == listModuleCode.SelectedItem.Text);
    listModuleCode.Items.Remove(listModuleCode.SelectedItem);
    listModuleTitle.Items.Remove(listModuleTitle.SelectedItem);
    table.DeleteAllOnSubmit(result);
    DB.SubmitChanges();
    Response.Redirect("deletemodule.aspx"); // redirect to this page
}
  

Ответ №1:

Нам нужно просмотреть ваш код, чтобы помочь с большей вероятностью. Однако:

Вам нужно убедиться, что он знает, что нужно удалять при отправке:

 var q = db.Customers.Where(c => c.CustomerID == 2).Single();
db.Customers.DeleteOnSubmit(q);
db.SubmitChanges();
  

Не забывайте, что вы можете передать объекту прямой SQL:

 db.ExecuteCommand("DELETE FROM Customers WHERE ID = 2");
  

Что, по вашему мнению, проще.

Комментарии:

1. Спасибо, но я использовал DeleteOnSubmit, и я также вызывал SubmitChanges.