C# 通过从gridview中选择Update按钮,从SQL数据库更新特定记录
我有一个从SQL数据库填充的GridView,GridView中的每一行都有一个更新按钮。现在我要做的是,当我单击某一行的更新按钮时,我希望我的数据库将该行从active=true设置为active=false。如何让Linq查询选择数据库中的特定数据行并仅更新该项 下面是在gridView中创建按钮的asp.net代码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>
<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之后
tryContext.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 .