2012-09-19 79 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之前();

相关问题