【问题标题】:Update record on database in MVC4在 MVC4 中更新数据库记录
【发布时间】:2015-11-14 23:17:30
【问题描述】:

在这里需要一些帮助..

目的:在MVC4中更新数据库记录

我有一个带有两个按钮的 Accordian 视图 #1.Edit #2.save.. 到目前为止所做的是..

使用以下代码,我已经从数据库中获取数据到相应的文本框。

第 1 步:在文本框中填写的数据属性设置为只读,一旦点击编辑按钮,文本框将设置为可编辑。

第 2 步:如果我更改数据并单击应在数据库上更新的保存按钮

问题:

更新数据库中的数据时,更新数据是作为新数据添加到新行中。 但我需要更新现有数据

查看:

<body>

    <div id='cssmenu'>
        <ul>
            <li class='active'></li>
            <li class='has-sub'>
                <a href='#'><span>Profile</span></a>
                <ul>
                    <form method="post" >
                    <table>
                        <tr>
                            <td>
                                @Html.DisplayNameFor(model => model.FirstName)
                            </td>
                            <td>
                                @Html.TextBoxFor(m => m.FirstName, new { @readonly = "readonly" })
                            @*@Html.EditorFor(model => model.FirstName)*@
                                @Html.ValidationMessageFor(model => model.FirstName)
                            </td>
                        </tr>
                        <tr>
                            <td>
                                @Html.DisplayNameFor(model => model.LastName)
                            </td>
                            <td>
                                @Html.TextBoxFor(m => m.LastName, new { @readonly = "readonly" })
                                @Html.ValidationMessageFor(model => model.LastName)
                            </td>
                        </tr>
                        <tr>
                            <td>
                                @Html.DisplayNameFor(model => model.EmailID)
                            </td>
                            <td>
                                @Html.TextBoxFor(m => m.EmailID, new { @readonly = "readonly" })
                                @Html.ValidationMessageFor(model => model.EmailID)
                            </td>
                        </tr>
                        <tr>
                            <td>
                                @Html.DisplayNameFor(model => model.MobileNumber)
                            </td>
                            <td>
                                @Html.TextBoxFor(m => m.MobileNumber, new { @readonly = "readonly" })
                                @Html.ValidationMessageFor(model => model.MobileNumber)
                            </td>
                        </tr>
                    </table>
                 <input type="button" id="btn" name="Edit" value="Edit"/>
                        <input type="submit" name="Save" id="Save" />
                        @*<input type="submit" name="Save" value="Save" onclick="location.href='@Url.Action("Save", "CU")'" />*@
               </form>
                </ul>
            </li>


             <li class='has-sub'>
                <a href='#'><span>Change Password</span></a>
                <ul>
                    <li><a href='#'><span>Company</span></a></li>
                    <li class='last'><a href='#'><span>Contact</span></a></li>
                </ul>
            </li>
            <li class='has-sub'>
                <a href='#'><span>Add Customer</span></a>
                <ul>
                    <li><a href='#'><span>Company</span></a></li>
                    <li class='last'><a href='#'><span>Contact</span></a></li>
                </ul>
            </li>
        </ul>
    </div>

</body>

@section scripts
{

    <script type="text/javascript">

        $("#btn").click(function () {
            $("#FirstName").removeAttr("readonly");
            $("#LastName").removeAttr("readonly");
            $("#EmailID").removeAttr("readonly");
            $("#MobileNumber").removeAttr("readonly");

        });

    </script>

    }

控制器

 public ActionResult AccountPanel(int id, string Save, string FirstName)
        {

            var profile = (from s in db.tblUsers
                               where s.UserTypeId == 3 && s.UserID == id
                               select new Profile
                               {
                                   FirstName = s.FirstName,
                                   LastName = s.LastName,
                                   EmailID = s.EmailID,
                                   MobileNumber = s.MobileNumber


                               }).FirstOrDefault();



                if (Save != null)
                {

                    using (var context = new SYTEntities())
                    {
                        var s = context.tblUsers.Where(a => a.UserID == id).FirstOrDefault();
                            s.FirstName = FirstName;
                            s.LastName = profile.LastName;
                            s.EmailID = profile.EmailID;
                            s.MobileNumber = profile.MobileNumber;

                            context.tblUsers.Add(s);

                            context.SaveChanges();


                    }


                }



                return View(profile);
        }

【问题讨论】:

    标签: entity-framework asp.net-mvc-4 model-view-controller


    【解决方案1】:

    要更新数据库中的数据,请更改为以下代码。

    if (Save != null)
    {
    
        using (var context = new SYTEntities())
        {
            var s = context.tblUsers.Where(a => a.UserID == id).FirstOrDefault();
            s.FirstName = FirstName;
            s.LastName = profile.LastName;
            s.EmailID = profile.EmailID;
            s.MobileNumber = profile.MobileNumber;
    
            context.SaveChanges();
    
        }
    
    }
    

    从您的代码中删除 context.tblUsers.Add(s);

    【讨论】:

      【解决方案2】:
      using (var context = new SYTEntities())
      {
          var s = context.tblUsers.Where(a => a.UserID ==     id).FirstOrDefault();
          s.FirstName = FirstName;
          s.LastName = profile.LastName;
          s.EmailID = profile.EmailID;
          s.MobileNumber = profile.MobileNumber;
      
          // SET STATE TO CHANGED
          db.Entry(tblUsers).State = EntityState.Modified;
      
          context.SaveChanges();
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多