2016-06-10 4 views
-1

데이터베이스 변경 후 내 모델이 업데이트되지 않는 문제가 있습니다. 승인하거나 거부 할 버튼이있는 목록이 있습니다. 내가 버튼을 승인하거나 거부 누르면데이터베이스 변경 후 모델이 업데이트되지 않음

using (Html.BeginForm("LeaveProcess", "Admin", FormMethod.Post, new { @class = "form-horizontal" })) 
{ 
    <input type="text" name="LvAppId" hidden value="@item.LvAppId"> 
    <li><button type="submit" class="btn btn-link" name="AppVal" value=true data-confirm="are u sure?" >Approve</button></li> 
    <li><button type="submit" class="btn btn-link" name="AppVal" value=false >Reject</button></li> 
} 

, 그 제출 버튼의 값은

[HttpPost] 
public ActionResult LeaveProcess(string LvAppId, bool AppVal) 
{ 
    DataChange.UpdateStatusFromAdmin(LvAppId, AppVal); 
    TempData["AlertMessage"] = "Your Action Has Been Processed"; 
    return RedirectToAction("Index"); 
} 

및 업데이트 데이터베이스 열에 "승인"또는 "거부"를 컨트롤러로 이동합니다.

public static void UpdateStatusFromAdmin(string LvAppId, bool AppVal) 
{ 
    if (AppVal == true) 
    { 
     db.Database.ExecuteSqlCommand("UPDATE LeaveApps SET Status='Approved' WHERE LvAppId={0}", LvAppId); 
    } 
    else 
    { 
     db.Database.ExecuteSqlCommand("UPDATE LeaveApps SET Status='Rejected' WHERE LvAppId={0}", LvAppId); 
    } 
} 

데이터베이스가 업데이트 될 때 어떻게해야합니까, (SSMS로 체크),하지만 난 페이지를 다시로드 할 때, 값은 아직 업데이트되지 그리고 내가 그것을 업데이트하려면 Visual Studio에서 디버깅을 다시 시작해야합니다? 감사합니다

+0

어떻게 데이터베이스 컨텍스트의 수명을 관리합니까? using (var db = new DatabaseContext()) {// 여기에서 데이터 액세스 수행} 참조 : https://msdn.microsoft.com/en-gb/data/jj729737.aspx –

+0

흠 사용하고 있습니다. 이렇게 : private static UserContext db = new UserContext(); 다음과 같이 호출하십시오. var Employee = db.Employee.SqlQuery (strquery, Convert.ToInt32 (EmpId)). FirstOrDefault(); 잘못 되었나요? 내 사건과 어떻게 관련이 있니? – Fimblutterr

+1

쿼리가 정확하고 ssms를 사용하여 백엔드에 변경 사항이 적용되었음을 확인할 수 있지만 변경 사항이 앱에 반영되지 않았다는 확신이 들면 그 변경 사항이 앱에 반영되지 않은 것입니다. 문맥. 당신이 컨텍스트를 적절히 처분하지 않는 것처럼 보입니다. 이전 메모와 같이 using 문 안에 데이터 액세스를 래핑하면 링크가 자동으로 처리합니다. 문제가 해결되지 않으면 초점을 맞 춥니 다. –

답변

1

를 얻을 수 있도록해야하지만, 변화가 귀하의 애플 리케이션에 반영되지 않습니다 .. 나는 그것이 문맥에 문제가 있다는 좋은 징후라고 생각합니다.

코드에서 컨텍스트를 제대로 처리하지 않는 것처럼 보입니다.

그래서 같은 using 문 내부 데이터 액세스를 포장 : 그게 내가 '문제가 해결되지 않는 경우

using(var db = new DatabaseContext()) 
{ 
    // perform data access here 
} 

자동 폐기 것이다 ...

https://msdn.microsoft.com/en-gb/data/jj729737.aspx

를 참조하십시오 d 귀하의 질의에 집중하십시오

0

데이터베이스에 값을 쓰는 것 외에 아무 것도하지 않습니다.

모델의 개체를 만들고보기를 호출하십시오.

var model = new YourModel 
{ 
    LvAppId = lvAppId, 
    AppVal = appVal 
}; 

return View("Index", model); 

그렇지 않으면 당신은 당신이 쿼리가 정확하고 당신이 변경 SSMS를 사용하여 백엔드에 만들어지고 볼 수 있다고 확신하는 경우 데이터베이스에 대한 호출이 가장 최근의 값

관련 문제