繁体   English   中英

如何更新我的数据库?

[英]How do I update my database?

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

这是我的表格

@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 />
                    }
                }

按钮“ btnSaveChanges”是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;
    }
}
}
<input type="submit" value="Save" />

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

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

    --- more code to do stuff here
}

将表单动作设置为MyController / Save

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM