我有一个带有选择按钮的GridView,可以触发此代码。它的目的是提供最后一分钟撤销授权的方法。因此我试图做的是在数据库中打开一个表,更新了三列,将两个设置为null(没有绝对必要的可能是空白或者单独留下)但是要改变的关键是'已批准&# 39;需要更改为False。我的所有价值分配和我的' SaveChanges()'都是红色的。我在c#中编码非常新,所以我可以在这里使用一些方向,但我在这里做的是遵循我找到的例子,我认为它应该工作......但是......
思想?
protected void PrePushUpdatesGrd_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow row = PrePushUpdatesGrd.SelectedRow;
int trackingID = int.Parse(row.Cells[1].Text);
using (CInTracDBEntities1 Context = new CInTracDBEntities1())
{
var UpdateSet = Context.Updates.Where(a => a.CAssetID == trackingID).Select(x => new { x.CAssetID, x.SubmitBy, x.SubmitDT, x.ApproveBy, x.Approved, x.ApprovedDT }).FirstOrDefault();
UpdateSet.ApproveBy = null;
UpdateSet.ApprovedDT = null;
UpdateSet.Approved = "False";
trackingID.SaveChanges();
}
PrePushUpdatesGrd.DataBind();
}
答案 0 :(得分:0)
试试这个
protected void PrePushUpdatesGrd_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow row = PrePushUpdatesGrd.SelectedRow;
int trackingID = int.Parse(row.Cells[1].Text);
using (CInTracDBEntities1 Context = new CInTracDBEntities1())
{
var UpdateSet = Context.Updates.FirstOrDefault(a => a.CAssetID == trackingID);
UpdateSet.ApproveBy = null;
UpdateSet.ApprovedDT = null;
UpdateSet.Approved = "False";
Context.Entry(UpdateSet).State= EntityState.Modified; //correct
Context.SaveChanges();
}
PrePushUpdatesGrd.DataBind();
}