2012-08-28 92 views
-1

我想更新現有記錄。我也調試了我的代碼。 int id變量獲取值,但我不知道爲什麼我的記錄沒有更新。LINQ的更新查詢

SQLDBDataClassesDataContext dContext = new SQLDBDataClassesDataContext(); 
protected void Page_Load(object sender, EventArgs e) 
{ 
    //if (!IsPostBack) 
    { 
     if (!string.IsNullOrEmpty(Request.QueryString["fname"])) 
     { 
      FirstNameTextBox.Text = Request.QueryString["fname"]; 
     } 
     if (!string.IsNullOrEmpty(Request.QueryString["lname"])) 
     { 
      LastNameTextBox.Text = Request.QueryString["lname"]; 
     } 
     if (!string.IsNullOrEmpty(Request.QueryString["cellnum"])) 
     { 
      CellNumberTextBox.Text = Request.QueryString["cellnum"]; 
     } 
    } 
} 

protected void UpdateButton_Click(object sender, EventArgs e) 
{ 
    int id = Convert.ToInt32(Request.QueryString["id"]); 
    var updatequery1 = dContext.PersonalDetailTables 
     .Where(pd => pd.ID == id).SingleOrDefault(); 

    if (updatequery1 != null) 
    { 
     updatequery1.FirstName = FirstNameTextBox.Text; 
     updatequery1.LastName = LastNameTextBox.Text; 
     updatequery1.CellNumber = CellNumberTextBox.Text; 
     dContext.SubmitChanges(); 
    } 
} 
+0

試圖顯示在該部分的,如果和其他的消息,看到所顯示的內容信息,所以你知道,如果它甚至會在if語句。 – SynerCoder

+0

你確定你正確使用DataContext嗎?從代碼中不清楚什麼是上下文以及它來自哪裏。 –

+0

@SynerCoder ..它得到的,如果(updatequery1!= NULL)子句.. 但在這裏,值保持相同,沒有改變 –

回答

0

如果(updatequery1!= NULL)

是updatequery1空?如果是現在,它會馬上跳過。設置一個斷點並逐步完成。

或者,改變.SingleOrDefautl而不是。單。這樣,如果沒有發現,你會得到一個例外,你會知道發生了什麼。

+0

嗯,我改變了對的SingleOrDefault。單。 但有一點,在updatequery1不爲空。它進入if子句。 *什麼都沒有發生*:/ –

0

電話呼叫dContext.SubmitChanges();之前dContext.InsertOnSubmit(fooentity)方法。

例如。

var ctx = DB.fooDB; 
     fooobj.fooName= bar.fooName; 
     fooobj.fooID= bar.fooID; 
     if (fooobj.fooID== 0) 
      ctx.Locations.InsertOnSubmit(bar); 
     ctx.SubmitChanges(); 
0

I`ve得到了我的解決方案.. 唯一的問題是,如果(!的IsPostBack)問題。

-1
context.InvProductStockMasters 
     .Update(ps => ps.LocationID.Equals(invStockAdjustmentHeader.LocationID) 
        && ps.ProductID.Equals(invStockAdjustmentDetail.ProductID), 
       ps => new InvProductStockMaster 
          { Stock = ps.Stock - invStockAdjustmentDetail.OrderQty });