实体更新失败

问题描述:

存储更新,插入或删除语句影响了意外数量的行(0)。自实体加载后,实体可能已被修改或删除。刷新ObjectStateManager条目。实体更新失败

我刚开始学习实体,并且已经在WinForms中使用它并且现在使用了Webforms。它在几天内工作正常,现在当我尝试更新DataView中的字段时出现错误。 'DV中的AutoGenerateEditButton =“True”。 DV连接到EntityDataSource。一位朋友访问了网络表单,并从diff位置编辑了一个,并且是最后一次编辑/更新工作。

这是情况下,更新事件,可以帮助:

Sub dgv_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) Handles dgv.RowUpdating 
Try 
    Dim row As GridViewRow = dgv.Rows(dgv.EditIndex) 
    Dim list As DropDownList = CType(row.FindControl("ddlDoseType"), DropDownList) 
    e.NewValues("DoseType") = list.SelectedValue 
Catch ex As Exception 
    MsgBox(ex.ToString) 
End Try 
End Sub 

任何想法?

您可以重现此错误,如果你做以下

  • 客户端A读取与ID = 1
  • 客户B的行删除与ID = 1个
  • 客户端A变更内容的行该行
  • 客户为例A试图以保存更改

由于与ID行= 1不存在你这是在错误 你的问题。

它看起来不像您发布的代码导致错误,因为这是数据网格的更新,而不是将数据保存到数据库。

+0

有趣的是,你说 - 我只是写了add函数来检查最后一个Id,并添加1。我在删除最后一个记录之前删除了一条记录,此后Id不正确。有时它很简单! – OneFineDay 2012-07-21 20:38:14