如何使用c#删除数据库中的记录

本文关键字:记录 数据库 删除 何使用 | 更新日期: 2023-09-27 18:13:17

如何删除记录?
我需要删除通过使用外键找到的记录。我把它存储为变量,但现在我不能删除它。有什么建议吗?

// POST: Account/Delete/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Delete(int id, Leerling ll)
{
    var login = from l in db.myLogin
                where id == l.leerlingId
                select l;
    db.myLogin.Remove(login???);
    db.Entry(ll).State = System.Data.Entity.EntityState.Deleted;
    db.SaveChanges();
    return RedirectToAction("Index");// het record verwijderen en redirecten als het gelukt is
}

如何使用c#删除数据库中的记录

取决于数据库结构。您通常不希望删除行,而是希望使用某种Status列,其中有一个值表示该行已被删除。这样你就可以确保你不会把其他事情搞砸了。

但是如果你只是想删除一行,你应该可以这样做:

var login = db.myLogin.find(id);
db.myLogin.Remove(login);
db.SaveChanges();

如果你得到一些关于外键依赖的错误消息,你必须首先删除所有引用该对象的对象。

在您的查询login对象的集合,但要删除一个记录,您需要选择一个单一的,所以使用FirstOrDefault()方法选择单个记录,然后使用Remove()方法和SaveChanges()删除

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Delete(int id, Leerling ll)
{
    var login = (from l in db.myLogin
                  where id == l.leerlingId
                  select l).FirstOrDefault();
    if(login != null)
    {
       db.myLogin.Remove(login);
       db.Entry(ll).State = System.Data.Entity.EntityState.Deleted;
       db.SaveChanges();
    }

    return RedirectToAction("Index");// het record verwijderen en redirecten als het gelukt is
}