更新数据表中的切割行并添加新记录 ASP.NET MVC
Updating cuttent row in the datatable and adding new record ASP.NET MVC
这个问题是关于更新数据库中的当前记录table和添加新记录。
在我的 ASP.NET MVC 应用程序中,从视图中我已将相关数据传递给控制器,这是我的数据库 table 并突出显示了要更新的相关记录。
这是我的controller,可以看到view传递过来的数据
所以如图1,ApprovalProcess_Id 40应该更新今天,approval_status应该是1,Approval_note应该更新以及。如图 3 所示,注释数据已经存在。所以Approval_ProcessId是我单独拿到tempdata的。
int tempAId = int.Parse(TempData.Peek("CurrentId").ToString());
我按照图片尝试的方式,也没有更新,我想更新当前记录的备注,批准状态,日期时间,需要添加相同的新记录 tempAID 模型包含新的 approver_Id.
这是我当前的代码
public ActionResult ApproveRequest(ApprovalProcess approvalProcess)
{
if (ModelState.IsValid)
{
if (approvalProcess.Approvers != null)
{
int tempAId = int.Parse(TempData.Peek("CurrentId").ToString());
ApprovalParty approvalParty = new ApprovalParty();
approvalParty.Approved_Date = DateTime.Now;
approvalParty.Approved_Note = approvalProcess.Approvers.ToList().First().Approved_Note;
approvalParty.Approve_Status = true;
}
//approvalProcess approvalProcess1 = new approvalProcess();
//approvalParty.Approved_Date = DateTime.Now;
//approvalParty.Approve_Status = true;
//ApprovalParty model = new ApprovalParty();
////approvalParty.ApprovalProcess_Id = tempAId;
//approvalParty.Approved_Note = model.Approved_Note;
//db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View("Index");
}
}
您根本没有对数据库进行任何更新,也就是说您正在更新世界上的所有属性,但是 none 其中的属性被推回您的数据库。
这是一个将更新推送到您的数据库的示例:
public ActionResult ApproveRequest(ApprovalProcess approvalProcess)
{
if (ModelState.IsValid)
{
int.TryParse(TempData.Peek("CurrentId").ToString(), out int tempAId);
// This pulls the record from your db so that entity framework can track and update it.
var approvalParty = db.ApprovalParties.Find(tempAId);
approvalParty.Approval_Date = DateTime.Now;
// This will error because you'd need to select a particular Approver in the list to determine which Approved_Note to use.
// Should be something like Approvers.ToList()[0].Approved_Note
approvalParty.Approved_Note == approvalProcess.Approvers.ToList().Approved_Note;
approvalParty.Approve_Status = true;
// Pushes the updated data to the database.
db.SaveChanges();
}
}
为了添加新的 ApprovalParty 记录(我只是假设这就是您所称的,您需要将 属性 值映射到新的 ApprovalParty 并将其添加到 db.ApprovalParties
:
var approvalParty = new ApprovalParty
{
Approved_Date = DateTime.Now,
Approved_Note = approvalProcess.Approvers.ToList()[0].Approved_Note,
Approved_Status = true;
};
db.ApprovalParties.Add(approvalParty);
db.SaveChanges();
这个问题是关于更新数据库中的当前记录table和添加新记录。
在我的 ASP.NET MVC 应用程序中,从视图中我已将相关数据传递给控制器,这是我的数据库 table 并突出显示了要更新的相关记录。
这是我的controller,可以看到view传递过来的数据
所以如图1,ApprovalProcess_Id 40应该更新今天,approval_status应该是1,Approval_note应该更新以及。如图 3 所示,注释数据已经存在。所以Approval_ProcessId是我单独拿到tempdata的。
int tempAId = int.Parse(TempData.Peek("CurrentId").ToString());
我按照图片尝试的方式,也没有更新,我想更新当前记录的备注,批准状态,日期时间,需要添加相同的新记录 tempAID 模型包含新的 approver_Id.
这是我当前的代码
public ActionResult ApproveRequest(ApprovalProcess approvalProcess)
{
if (ModelState.IsValid)
{
if (approvalProcess.Approvers != null)
{
int tempAId = int.Parse(TempData.Peek("CurrentId").ToString());
ApprovalParty approvalParty = new ApprovalParty();
approvalParty.Approved_Date = DateTime.Now;
approvalParty.Approved_Note = approvalProcess.Approvers.ToList().First().Approved_Note;
approvalParty.Approve_Status = true;
}
//approvalProcess approvalProcess1 = new approvalProcess();
//approvalParty.Approved_Date = DateTime.Now;
//approvalParty.Approve_Status = true;
//ApprovalParty model = new ApprovalParty();
////approvalParty.ApprovalProcess_Id = tempAId;
//approvalParty.Approved_Note = model.Approved_Note;
//db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View("Index");
}
}
您根本没有对数据库进行任何更新,也就是说您正在更新世界上的所有属性,但是 none 其中的属性被推回您的数据库。
这是一个将更新推送到您的数据库的示例:
public ActionResult ApproveRequest(ApprovalProcess approvalProcess)
{
if (ModelState.IsValid)
{
int.TryParse(TempData.Peek("CurrentId").ToString(), out int tempAId);
// This pulls the record from your db so that entity framework can track and update it.
var approvalParty = db.ApprovalParties.Find(tempAId);
approvalParty.Approval_Date = DateTime.Now;
// This will error because you'd need to select a particular Approver in the list to determine which Approved_Note to use.
// Should be something like Approvers.ToList()[0].Approved_Note
approvalParty.Approved_Note == approvalProcess.Approvers.ToList().Approved_Note;
approvalParty.Approve_Status = true;
// Pushes the updated data to the database.
db.SaveChanges();
}
}
为了添加新的 ApprovalParty 记录(我只是假设这就是您所称的,您需要将 属性 值映射到新的 ApprovalParty 并将其添加到 db.ApprovalParties
:
var approvalParty = new ApprovalParty
{
Approved_Date = DateTime.Now,
Approved_Note = approvalProcess.Approvers.ToList()[0].Approved_Note,
Approved_Status = true;
};
db.ApprovalParties.Add(approvalParty);
db.SaveChanges();