2009-12-11 67 views
0

我的webforms页面上有一个可编辑的GridView。用户可以输入记录,并在使用LINQ进行提交后,我将记录插入数据库。它工作得很好。使用LINQ更新记录列表

我无法弄清楚如何更新记录。一旦用户点击提交按钮,我在GridView中填充记录,我需要更新现有记录。

这怎么办?

Dim db as new empDBDataContext 
Dim rw As GridViewRow 
Dim emp as new employee 
emp.name="test" 
emp.city="NYC" 
emp.age=40 
For each rw in GridView1.Rows 
    Dim cert as new certifications 
    cert.Name=CType(rw.FindControl("lblCert"), TextBox).Text 
    cert.score=CType(rw.FindControl("lblScore"), TextBox).Text  
    emp.cert.add(cert) 
Next 

db.emp.insertonsubmit(emp) 
db.submitChanges() 

回答

1

您可以使用您的唯一标识符认证从数据库中选择行(我用lblId作为控制名称)。然后,将属性设置为更新的值。这与您为插入操作非常相似。请原谅我的VB语法的无知,

For each rw in GridView1.Rows 
// Load the cert based on the ID of the row. 
Dim cert 
cert = (from c in db.certifications 
     where c.Id = (int) CType(rw.FindControl("lblId"), TextBox).Text).Single() 
// Update the values. 
cert.Name=CType(rw.FindControl("lblCert"), TextBox).Text 
cert.score=CType(rw.FindControl("lblScore"), TextBox).Text 
Next 

// Submit all the changes. 
db.submitChanges()