簡體   English   中英

在asp.net mvc 4中更新|刪除記錄

[英]updating|deleting record in asp.net mvc 4

早上好|晚上

我有此代碼用於更新控制器中的記錄

[HttpPost]
        public JsonResult Userupdate(UserProfile user)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return Json(new
                    {
                        Result = "ERROR",
                        Message = "Form is not valid! " +
                          "Please correct it and try again."
                    });
                }

                var usersC = from x in _db.UserProfiles where x.UserId == user.UserId select x;
                //int studentCount = usersC.Count();
                //List<UserProfile> students = usersC.ToList(); 
                UserProfile vb = new UserProfile();
                vb.UserId = user.UserId;
                vb.UserName = user.UserName;
                vb.IdentificationNumber = user.IdentificationNumber;
                vb.department = user.department;
                //_db.UserProfiles.Add(vb);
                _db.SaveChanges();

                return Json(new { Result = "OK"});
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

我有此代碼用於刪除控制器中的記錄

[HttpPost]
        public JsonResult userdelete(int userId)
        {
            try
            {
                //_personRepository.DeletePerson(personId);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

您會在注釋中看到“存儲庫”,因為我沒有在項目中使用它。 我使用鏈接方法。

我寫以下代碼與數據庫連接

UsersContext _db = new UsersContext();

但是我沒有從數據庫中刪除它的正確方法。

注意:::我正在使用jTable顯示數據。

你能幫助我嗎 :_)

這是使用實體框架嗎? 不幸的是,這在EF中無法像編寫服務或MVC api時希望的那樣工作。 也就是說,僅傳遞ID。

EF僅在實體在上下文中加載后才能刪除它。 這意味着要么獲取該實體然后刪除它,要么創建一個“殼”實體,將其附加,然后進行刪除。 (Remove方法的另一種方法是將其附加,然后將其狀態設置為Delete,然后執行SaveChanges。這實際上是相同的)

var userEntity = new UserProfile {UserId = userId};
_db.Users.Attach(userEntity);
_db.Users.Remove(userEntity);
_db.SaveChanges();

迅速解決您的問題真是太好了:)

是的,我在“ Jim Leonardo”的幫助下解決了我的問題。

非常感謝吉姆·萊昂納多先生。


以下代碼用於更新記錄,並且工作正常。

[HttpPost]
        public JsonResult Userupdate(UserProfile user)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return Json(new
                    {
                        Result = "ERROR",
                        Message = "Form is not valid! " +
                          "Please correct it and try again."
                    });
                }

                var usersC = from x in _db.UserProfiles where x.UserId == user.UserId select x;
                var UserToUpdate = usersC.First();
                UserToUpdate.UserId = user.UserId;
                UserToUpdate.UserName = user.UserName;
                UserToUpdate.IdentificationNumber = user.IdentificationNumber;
                UserToUpdate.department = user.department;
                _db.SaveChanges();

                return Json(new { Result = "OK"});
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

以下代碼用於刪除記錄; 它工作正常。

[HttpPost]
        public JsonResult userdelete(UserProfile user, int userId)
        {
            try
            {
                var usersC = from x in _db.UserProfiles where x.UserId == user.UserId select x;
                var UserToUpdate = usersC.First();
                UserToUpdate.UserId = user.UserId;
                UserToUpdate.UserName = user.UserName;
                UserToUpdate.IdentificationNumber = user.IdentificationNumber;
                UserToUpdate.department = user.department;
                _db.UserProfiles.Remove(UserToUpdate);
                _db.SaveChanges();
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

再次謝謝吉姆·萊昂納多先生

問題解決了 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM