У меня проблема с моей моделью не обновляется после изменения базы данных. У меня есть список, в котором у каждого есть кнопка, чтобы одобрить или отклонить.Модель не обновляется после изменения базы данных
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), но когда я перезагрузить страницу, значение по-прежнему не обновляется, и я должен перезапустить отладку в визуальной студии, чтобы сделать его обновленным, что я должен делать? Thanks
Как вы управляете жизненным циклом своей базы данных? вы делаете что-то вроде: using (var db = new DatabaseContext()) {// выполняем доступ к данным здесь} см. https://msdn.microsoft.com/en-gb/data/jj729737.aspx –
Хм я использую его например: private static UserContext db = new UserContext(); , а затем называть его следующим образом: var Employee = db.Employee.SqlQuery (strquery, Convert.ToInt32 (EmpId)). FirstOrDefault(); - это неправильно? и как это связано с моим делом? – Fimblutterr
Если вы уверены, что запрос верен, и вы можете видеть изменения, внесенные в бэкэнд с помощью ssms, но изменения не отражаются в вашем приложении. Я думаю, что это хороший признак того, что есть проблема с контекст. Похоже, что вы не избавляетесь от контекста, должным образом обертывающего ваш доступ к данным внутри оператора using, как в предыдущем комментарии, и ссылка автоматически удалит его ... если это не решит вашу проблему, я бы тогда сосредоточил по вашему запросу –