2012-07-21 72 views
0

存儲更新,插入或刪除語句影響了意外數量的行(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 

任何想法?

回答

0

您可以重現此錯誤,如果你做以下

  • 客戶端A讀取與ID = 1
  • 客戶B的行刪除與ID = 1個
  • 客戶端A變更內容的行該行
  • 客戶爲例A試圖以保存更改

由於與ID行= 1不存在你這是在錯誤 你的問題。

它看起來不像您發佈的代碼導致錯誤,因爲這是數據網格的更新,而不是將數據保存到數據庫。

+0

有趣的是,你說 - 我只是寫了add函數來檢查最後一個Id,並添加1。我在刪除最後一個記錄之前刪除了一條記錄,此後Id不正確。有時它很簡單! – OneFineDay 2012-07-21 20:38:14