【问题标题】:Delete row in gridview using linq使用linq删除gridview中的行
【发布时间】:2015-04-28 19:23:12
【问题描述】:

我编写这段代码是为了从 Gridview 中删除行,但它不起作用。

class.cs 中的代码:

public bool bDeleteItem(int nItemID)
{ 
    bool flag = false;
    try
    {
        Training_sNairoukhEntities1 sNairoukhEntities1 = new Training_sNairoukhEntities1();
        IMS_Items oIMS_Items = sNairoukhEntities1.IMS_Items.Where(Entity => Entity.ItemID == nItemID).Single();
        sNairoukhEntities1.IMS_Items.Remove(oIMS_Items);
        int nResult = sNairoukhEntities1.SaveChanges();
        if (nResult > 0)
        {
            flag = true;
        }
    }
    catch (Exception ex)
    {
    }
    return flag;
}

Aspx.cs 中的代码:

int nId = Convert.ToInt32(gvManageItem.DataKeys[Convert.ToInt32(e.CommandArgument)]["ItemID"].ToString());
if (e.CommandName == "cmDelete")
{
    ManageItem oManageItem = new ManageItem();
    if (oManageItem.bDeleteItem(nId))
    {
        lblValidation.Text = "Delete is successfully";
    }
    else
    {
        lblValidation.Text = "isnt delete";
    }
}

【问题讨论】:

  • 会不会是你忘记调用数据库上下文的 SaveChanges() 方法了?
  • @ClaudioP 在这条线上被调用:int nResult = sNairoukhEntities1.SaveChanges();
  • 你有没有调试过你的代码并在调用 delete 时检查了 nId 的值?
  • @PraveenPaulose its Gives me all data on the nid but the problem in nReuslt ==0 should be 1
  • 你介意我发表我的评论作为答案吗?

标签: c# linq entity-framework


【解决方案1】:

Remove 方法“将给定实体标记为已删除,以便在调用 SaveChanges 时将其从数据库中删除。请注意,在调用此方法之前,实体必须以其他状态存在于上下文中。” 下面的命令将起作用: sNairoukhEntities1.Entry(oIMS_Items).State = System.Data.Entity.EntityState.Deleted;
sNairoukhEntities1.SaveChanges();

【讨论】:

    猜你喜欢
    • 2019-04-06
    • 2014-10-21
    • 2012-12-18
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 2013-03-02
    相关资源
    最近更新 更多