2017-04-24 4 views
0

데이터베이스의 항목을 편집하기위한 중요한 작업을 추가하려고하는데이 DbUpdateConcurrencyException이 발생합니다. 무엇이 문제일까요? 미리 감사드립니다. MVC Crud Operation 편집

CONTROLLER :

//MODAL POPUP FOR EDIT 

public ActionResult EditItem() 
{ 
    return PartialView(); 
} 

//POST: EDIT ITEM 

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult EditItem(H_Table item) 
{ 
    db_connection.Entry(item).State = EntityState.Modified; 
    db_connection.SaveChanges(); 
    return RedirectToAction("Index"); 
} 
+0

도움이 될만한 자료가 있습니까? http://stackoverflow.com/questions/26148793/how-to-solve-dbupdateconcurrencyexception-when-updating-a-row – Prisoner

+0

어떻게이 ID를 전송합니까? TimeStamp/RowVersion 열이 있습니까? 또한 모든 예방 조치가 부족합니다. –

+0

HTML보기를 표시하십시오. 항목을 전달하지 않는다고 생각합니다. – DumpsterDiver

답변

0

는 기본적으로 먼저 다음 업데이트 작업을 통해 이동 확인해야 같은 클래스의 객체를 뷰 모델에서 가져 와서 데이터베이스에 삽입합니다.

0

당신이 당신의 데이터베이스에 업데이트 할 테이블의 이름을 추가합니다. 난 당신이 그것의 ID를 사용하여 첫 번째 항목을 찾을 제안 그러나

public ActionResult EditItem(H_Table item) 
{ 
    if(ModelState.IsValid) 
    { 
     using (var db = new YourDbContext()) 
     { 
      db.Entry(item).State = EntityState.Modified; 
      db.SaveChanges(); 
     } 
     return RedirectToAction("Index"); 
    } 
} 

는, 다음을 입력 : 모델이 유효인지 아닌지

public ActionResult EditItem(H_Table item) 
{ 
      H_Table oldObj= db.H_Table.Find(item.ID); 
      db.Entry(oldObj).CurrentValues.SetValues(item); 
      db_connection.SaveChanges(); 
      return RedirectToAction("Index"); 
} 
+0

여전히 작동하지 않습니다. 는 데이터베이스가 연결되어 있으므로 아무런 역할을하지 않습니다. 컨트롤러는 이미 어떤 테이블인지 알고 있습니다. – SonOfAGun

+0

@SonOfAGun 업데이트 된 답변을 확인하십시오. 그것이 효과가 있기를 바랍니다. –