【问题标题】:How to update a record from database via ADO.NET Entity Framework?如何通过 ADO.NET Entity Framework 更新数据库中的记录?
【发布时间】:2010-10-18 01:31:58
【问题描述】:

我的 WPF 桌面应用程序使用 ADO.Net Entity Framework 来连接到 SQL Server 数据库。在其中一个窗口中,我有一个 DataGrid,其中包含来自 tbl_users 的所有数据,当用户选择其中一行(记录)并单击 Edit 时,应用程序会打开一个带有表单的新窗口,即包括用户可以编辑/更新的所有数据。

我的问题是如何通过 ADO.NET Entity Framework 将表值之一的更改(更新/编辑)保存到数据库?

以下是一些有助于理解情况的代码 sn-ps:

1 - 编辑窗口构造函数

public object objToBeEdited;

public WinWorkers_EditWorker(tbl_users userToBeEdited)
{
    this.Title = Glidus.Properties.Resources.WinWorkers_EditWorker_WinName + Glidus.Properties.Resources.WinApp_WinName;
}

2 - 方法更新,不起作用

tbl_users newUser = new tbl_users() //assume inputted values to new ibject
{
    userName = this.WinWorkers_AddEditWorkers_Form_UserName.Text,
    userPassword = this.WinWorkers_AddEditWorkers_Form_Password.Text,
    userAccessLevel = this.WinWorkers_AddEditWorkers_Form_UserAccessLevel.Text
};

//default minimal password length is 4
if (App.IsInputValueMinLenOK(newUser.userPassword, 4))
{
    EntityKey key = App.glidusContext.CreateEntityKey("tbl_users", objToBeEdited);

    if (App.glidusContext.TryGetObjectByKey(key, out objToBeEdited))
    {
        App.glidusContext.ApplyCurrentValues<tbl_users>(key.EntitySetName, newUser);
    }

    try
    {
        App.glidusContext.SaveChanges();
    }
    catch (Exception ex)
    {
        App.UnitedHandleException(ex);
    }

请帮帮我,如何实现从数据库中更新 ADO.NET 记录。

例如,在我的表中有 James Bond 007,在编辑页面后(点击提交页面)我看到 Austin Powers 008

【问题讨论】:

    标签: wpf database entity-framework


    【解决方案1】:

    要编辑或更新您可以使用stub entities

    Category category = new Category { ID = 5};
    Context.AttachTo(“Categories”,category);
    
    Product product = new Product {
         Name = “Bovril”,
         Category = category
    };
    Context.AddToProducts(product);
    Context.SaveChanges();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2013-02-26
      • 1970-01-01
      • 2014-11-11
      • 2018-03-21
      相关资源
      最近更新 更多