我有一个非常简单的页面,包括从数据库填充的两个DropDownLists和一个按钮。页面的目的非常简单,允许用户从数据库中删除条目。单击该按钮时,将执行一个简单的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 && 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
}
答案 0 :(得分:2)
我们需要更多地看到您的代码。但是:
您需要确保在提交时知道删除:
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");
您可能认为这更容易。