首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C#应用程序如何更新和删除数据库中的记录

C#应用程序如何更新和删除数据库中的记录
EN

Stack Overflow用户
提问于 2013-01-09 16:15:16
回答 4查看 58.5K关注 0票数 4

我需要知道如何从数据库中更新和删除记录。我知道如何添加记录,但无法在数据库中更新和删除记录。

代码语言:javascript
复制
namespace Ex.Models
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;

    public partial class MyEntities : DbContext
    {
        public MyEntities()
            : base("name= MyEntities")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

        public DbSet<Friend> Friend { get; set; }
    }
}

--

控制器

代码语言:javascript
复制
// POST: /Home/Edit/5
[HttpPost]
public ActionResult Edit(int id, Friend f)
{
    try
    {
        // TODO: Add update logic here
        myEntities.Friend.Attach(f);// Doesn't work.. How to update ?
        myEntities.SaveChanges();
        return RedirectToAction("Index");
    }
    catch
    {
        return View();
    }
}

为了向数据库添加记录,我使用了以下代码。它起作用了;

代码语言:javascript
复制
myEntities.Friend.Add(f);
myEntities.SaveChanges();
return RedirectToAction("Index");

更新

代码语言:javascript
复制
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Exp.Models.Friend>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Delete
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Delete</h2>

<h3>Are you sure you want to delete?</h3>
<fieldset>
    <legend>Friend</legend>

    <div class="display-label">Name</div>
    <div class="display-field">
        <%: Html.DisplayFor(model => model.Name) %>
    </div>


</fieldset>
<% using (Html.BeginForm()) { %>
    <p>
        <input type="submit" value="Delete" /> |
        <%: Html.ActionLink("Back to List", "Index") %>
    </p>
<% } %>

</asp:Content>
EN

回答 4

Stack Overflow用户

发布于 2013-01-09 16:21:52

删除

代码语言:javascript
复制
myEntities.Friend.Remove(f);
myEntities.SaveChanges();

更新

代码语言:javascript
复制
Friend f = myEntities.Friend.FirstOrDefault(x => x.Id = MyId);
f.Name = NewName;
myEntities.SaveChanges();
票数 9
EN

Stack Overflow用户

发布于 2013-01-09 16:18:54

要更新,它与add相同,但没有.Friend.Add(f)。加载项目,如下所示:

代码语言:javascript
复制
var friendEntity = myEntites.Friend.SingleOrDefault(f => f.Id == id);
friendEntity.Field1 = f.Field1;
...
myEntities.SaveChanges();

若要删除,请使用与.Add(f)相反的.Remove

票数 2
EN

Stack Overflow用户

发布于 2018-08-07 18:33:42

更新:第一种方法

代码语言:javascript
复制
        public void IsActiveItem(int id)
         {
            var data = db.IRAS_InventoryItems.Find(id);
            data.IsActive = false;
            db.Entry(data).State = EntityState.Modified;           
            db.SaveChanges();
         }

更新:第二种方法

代码语言:javascript
复制
           public void IsActiveItem(int id)
           {
            var data = (from a in db.IRAS_InventoryItems
            where a.Id == id
            select a).FirstOrDefault();
            data.IsActive = false;
            db.Entry(data).State = EntityState.Modified;           
            db.SaveChanges();
           }

要删除:首先

代码语言:javascript
复制
         public void Remove(int id)
         {
            var data = db.IRAS_InventoryItems.Find(id);
            data.IsActive = false;
            db.IRAS_InventoryItems.Remove(data);       
            db.SaveChanges();
         }

删除:第二个

代码语言:javascript
复制
              public void Remove(int id)
              {
                  var data = (from a in db.IRAS_InventoryItems
                  where a.Id == id
                  select a).FirstOrDefault();                      
                  db.IRAS_InventoryItems.Remove(data);          
                  db.SaveChanges();
               }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14230851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档