#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.