2010-10-18 65 views
1

我的基于WPF桌面的应用程序使用ADO.Net Entity Framework来连接到SQL Server数据库。在其中一个窗口中,我有一个包含tbl_users所有数据的DataGrid,当用户选择其中一行(记录)并单击Edit时,应用程序将打开一个带窗体的新窗口,其中包含用户可以编辑/更新的所有数据。如何通过ADO.NET实体框架从数据库更新记录?

我的问题是如何通过ADO.NET实体框架将表中某个值的更改(更新/编辑)保存到数据库?

这里有一些代码段,有助于了解情况:

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记录。

例如,在我的桌子上有007,后编辑页面(点击提交页)我看王牌大贱谍008

回答

2

修改或更新,你可以使用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();