2011-05-09 61 views
2

我有一個非常簡單的頁面,包含從數據庫填充的兩個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 
} 

回答

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"); 

,你可能會認爲是更輕鬆。

+0

謝謝,但我確實使用DeleteOnSubmit,並且我也調用了SubmitChanges。 – Puppy 2011-05-09 12:22:29