C# 通过从gridview中选择Update按钮,从SQL数据库更新特定记录

C# 通过从gridview中选择Update按钮,从SQL数据库更新特定记录,c#,asp.net,sql,linq,radgridview,C#,Asp.net,Sql,Linq,Radgridview,我有一个从SQL数据库填充的GridView,GridView中的每一行都有一个更新按钮。现在我要做的是,当我单击某一行的更新按钮时,我希望我的数据库将该行从active=true设置为active=false。如何让Linq查询选择数据库中的特定数据行并仅更新该项 下面是在gridView中创建按钮的asp.net代码 <telerik:GridTemplateColumn UniqueName="TemplateUpdateColumn"> <ItemTemplate>

我有一个从SQL数据库填充的GridView,GridView中的每一行都有一个更新按钮。现在我要做的是,当我单击某一行的更新按钮时,我希望我的数据库将该行从active=true设置为active=false。如何让Linq查询选择数据库中的特定数据行并仅更新该项

下面是在gridView中创建按钮的asp.net代码

<telerik:GridTemplateColumn UniqueName="TemplateUpdateColumn">
<ItemTemplate>
<asp:LinkButton ID="UpdateLink" runat="server" CommandName="Update" Text="Update" OnClientClick="return confirm('You are about to update this Incident. \nAre you sure?')"><img src="../Images/icons/Trash.png" class="images" alt="Action" style="margin-left:5px"/></asp:LinkButton><br />Delete
</ItemTemplate>
</telerik:GridTemplateColumn>

您的源代码是否与您键入的完全相同?如果是:

紧跟在
cmd.Active=false之后
try
Context.Entry(cmd.Active).State=EntityState.Modified

这应该告诉DbContext在调用“SaveChanges”时更新该实体上的值。为了确保您的更改确实被保存,我将执行以下操作:

var updateSuccessful = db.SaveChanges() > 0;

如果
updateSuccessful
等于true,则更新有效。

您应该像这样尝试sql命令。 如果您使用的是实体框架,那么应该编写
db.Entry(cmd.State=EntityState.Modified
,在
cmd.Active=false之后
还要确保数据库中的活动列实际上是bool类型

protected void grdIncidents_UpdateCommand(object sender, GridCommandEventArgs e)
{
   Context db = new Context();

    var cmd = db.Incidents.FirstOrDefault(x=> x.IncidentID == /*your value*/);

    cmd.Active = false;
    db.SubmitChanges();
}

检查获取的对象是否为空。如果为空,则无法更新

受保护的void grdIncidents\u UpdateCommand(对象发送方,GridCommandEventArgs e) { Context db=newcontext()


}

var cmd=db.incents.FirstOrDefault(x=>x.IncidentID==/*您的值*/);这是行不通的,我需要gridview来知道当我点击delete按钮时我指的是哪个incidentID。因此,这段代码应该类似于这样的im猜测,其中i.IncidentID==在cmd.Active=false之后的GridView中记录的当前ID;try Context.Entry(cmd.Active).State=EntityState.Modified也不起作用VS不知道什么是上下文。Entry是什么是“上下文”的父类?我假设它是DbContext或其他实体框架上下文。另外,在您的问题中,您没有指定代码运行时得到的结果。你能补充一下吗?
protected void grdIncidents_UpdateCommand(object sender, GridCommandEventArgs e)
{
   Context db = new Context();

    var cmd = db.Incidents.FirstOrDefault(x=> x.IncidentID == /*your value*/);

    cmd.Active = false;
    db.SubmitChanges();
}
Incident cmd = (from i in db.Incidents 
       where i.IncidentID == //8
       select i).FirstOrDefault();

    if (cmd !=null)
    {
        cmd.Active = false;

        db.SaveChanges();
    }
    else
    //Show some kind of message here like unable to update .