如何更新我的数据库?

时间:2016-05-10 07:19:34

标签: c# asp.net asp.net-mvc database sql-update

我有一个带有表单的网页,表单显示了数据库中的信息,但我不知道如何更新数据库。我有一个保存方法,但我认为它必须是一个更新方法?我以为我的按钮上应该有一些事件处理程序,但我不知道怎么做。我已经在谷歌搜索了2天,但仍无法找到解决问题的方法..

这是我的表格

@if (Model.Bestuur.Bestuursleden.Any())
                {
                    foreach (var i in Model.Bestuur.Bestuursleden)
                    {
                        <form role="form" action="" method="post" name="formEdit">

                            <h2>@string.Format("{0} {1}", i.Persoon.Voornaam, i.Persoon.Achternaam)</h2>
                            <br />
                            <div class="form-group">
                                <label for="vnaam">Voornaam</label>
                                <input type="text" class="form-control" id="vnaam" name="vnaam" value="@i.Persoon.Voornaam" />
                            </div>

                            <div class="form-group">
                                <label for="anaam">Achternaam</label>
                                <input type="text" class="form-control" id="anaam" name="anaam" value="@i.Persoon.Achternaam" />
                            </div>

                            <div class="form-group">
                                <label for="email">Email</label>
                                <input type="text" class="form-control" id="email" name="email" value="@i.Persoon.Email" />
                            </div>

                            <div class="form-group">
                                <label for="telnr">Telefoonnummer</label>
                                <input type="text" class="form-control" id="telnr" name="telnr" value="@i.Persoon.Telnr" />
                            </div>

                            <div class="form-group">
                                <label for="informatie">Informatie</label>
                                <textarea class="form-control" id="informatie" name="informatie" value="@i.Persoon.Informatie" style="resize:vertical">@i.Persoon.Informatie</textarea>
                            </div>

                            <div class="form-group">
                                <label for="functie">Functie</label>
                                <input type="text" class="form-control" id="functie" name="functie" value="@i.Funktie.Naam" />
                            </div>
                            <button type="submit" id="btnSaveChanges" class="btn btn-primary">Wijzigen</button>
                        </form>
                        <br /><br /><br /><br />
                    }
                }

按钮&#39; btnSaveChanges&#39;是udate按钮

我的服务

  public bool SavePersoon(PersoonModel persoon)
    {
        bool result = true;


        db.Persoon.AddOrUpdate(persoon.GetPoco());


        db.SaveChanges();
        return result;

        //Persoon p = new Persoon()
        //{
        //    ID = persoon.Id,
        //    FIRST_NAME = persoon.Voornaam,
        //    LAST_NAME = persoon.Achternaam,
        //    EMAILADRES = persoon.Email,
        //    CITY = persoon.Woonplaats,
        //    PHONENUMBER = persoon.Telnr,
        //    INFORMATION = persoon.Informatie
        //}



    }

我的模特

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;

namespace WCFPlanningTool.Models.Bestuur
{
[DataContract]
public class BestuurModel
{
    [DataMember]
    List<BestuurLidModel> Bestuursleden { get; set; }

    public BestuurModel(List<BESTUURSLID> bestuursleden )
    {
        Bestuursleden = new List<BestuurLidModel>();

        foreach(BESTUURSLID bestuurslid in bestuursleden)
        {
            Bestuursleden.Add(new BestuurLidModel(bestuurslid));
        }
    }
}

[DataContract]
public class BestuurLidModel
{
    [DataMember]
    public PersoonModel Persoon { get; set; }

    [DataMember]
    public FunktieModel Funktie { get; set; }

    public BestuurLidModel(BESTUURSLID bestuurslid)
    {
        Persoon = new PersoonModel(bestuurslid.Persoon);
        Funktie = new FunktieModel(bestuurslid.Functie);
    }
}

[DataContract]
public class PersoonModel
{
    [DataMember]
    public string Voornaam { get; set; }

    [DataMember]
    public string Achternaam { get; set; }

    [DataMember]
    public string Email { get; set; }
    [DataMember]
    public string Woonplaats { get; set; }
    [DataMember]
    public string Telnr { get; set; }
    [DataMember]
    public string Informatie { get; set;}
    [DataMember]
    public Guid Id { get; set; }

    public bool IsDeleted { get; set; }
    public DateTime Created { get; set; }
    public Guid CreatedBy { get; set; }
    public DateTime Modified { get; set; }
    public Guid ModifiedBy { get; set; }


    public PersoonModel(Persoon persoon)
    {
        Voornaam = persoon.FIRST_NAME;
        Achternaam = persoon.LAST_NAME;
        Email = persoon.EMAILADRES;
        Woonplaats = persoon.CITY;
        Telnr = persoon.PHONENUMBER;
        Informatie = persoon.INFORMATION;
    }

    public Persoon GetPoco()
    {
        Persoon result = new Persoon();

        result.ID = Id;

        result.FIRST_NAME = Voornaam;
        result.LAST_NAME = Achternaam;
        result.INFORMATION = Informatie;
        result.PHONENUMBER = Telnr;
        result.CITY = Woonplaats;
        result.EMAILADRES = Email;
        result.DELETESTATUS = false;
        result.CREATED = DateTime.Now;
        result.CREATEDBY = Guid.Empty;
        result.MODIFIED = DateTime.Now;
        result.MODIFIEDBY = Guid.Empty;

        return result;
    }
}

[DataContract]
public class FunktieModel
{
    [DataMember]
    public string Naam { get; set; }

    public FunktieModel(Functie functie)
    {
        Naam = functie.NAME;
    }
}
}

2 个答案:

答案 0 :(得分:0)

<input type="submit" value="Save" />

它会调用表单操作指向控制器上的任何公共操作方法。然后,您可以在视图模型上调用save。

  [HttpPost]  
    public ActionResult  Save(MyViewModel model) {
    model.Save();            

    --- more code to do stuff here
}

将表单操作设置为MyController / Save

您还可以在代码中使用(Html.BeginForm ...将表单指向特定控制器上的特定操作方法。

答案 1 :(得分:0)

您的表单缺少using (@Html.BeginForm("myMethod", "Home", FormMethod.Post))

请检查: https://stackoverflow.com/a/14124732/5600402