我的实体Update.Code出了问题

时间:2016-09-20 18:59:13

标签: c# asp.net .net entity-framework entity-framework-6

我有一个带有选择按钮的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();            
    }

1 个答案:

答案 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();            
}