2012-09-19 116 views
0

我遇到了一個問題,我的列表框無法更新數據。我有2個桌子,時間和trolleyservice。該列表框讀取並顯示來自時序表的數據。兩個表都被鏈接了。每當我更新了手推車服務表的時候,它提示我這個錯誤:使用列表框更新數據庫

The property 'TimingID' is part of the object's key information and cannot be modified.

誰能幫助這個嗎?

private void btnUpdateTS_Click(object sender, EventArgs e) 
    { 

     int ID = Int32.Parse(lblID.Text); 
     foreach (timing selectedTiming in lstTime.SelectedItems) 
     { 
      var EditTS = (from ets in db.trolleyservices 
          where ets.idtrolleyservice == ID 
          select ets).First(); 
      EditTS.Type = txtType.Text; 
      EditTS.TimingID = selectedTiming.TimingID; 

      db.SaveChanges(); 
      txtType.Text = ""; 
     } 
    } 
+0

這個實體框架? – Prasanna

+0

是的這是實體框架 – Philemon

回答

0

聽起來像你的trolleyservice有一個TimingID的標識列。所以數據庫會爲你創建關鍵值,你不能自己設置它們。

如果您希望能夠設置該值,也許您應該考慮將其設置爲非關鍵字段。

+0

我的trolleyservice表中的TimingID是將時序錶鏈接在一起。因此,對於列表框,displaymember是時間,valuemember是ID。 – Philemon

+0

如果沒有以某種方式查看數據模型,這很難實現,你可以發佈這些嗎? –

0

需要說的是在保存之前修改對象。

Database.ObjectStateManager.ChangeObjectState(yourObject, EntityState.Modified); 
Database.SaveChanges(); 
0

嘗試添加

db.ObjectStateManager.ChangeObjectState(<yourObject>, EntityState.Modified); 

db.SaveChanges之前();

相關問題