如何:更新数据库中的行

你可以修改与 LINQ to SQL Table<TEntity> 集合关联之对象的成员值,然后将更改提交到数据库,以此更新数据库中的行。 LINQ to SQL 会将你所做的更改转换为相应的 SQL UPDATE 命令。

备注

可以替代 InsertUpdateDelete 数据库操作的 LINQ to SQL 默认方法。 有关详细信息,请参阅自定义插入、更新和删除操作

使用 Visual Studio 的开发人员可以使用对象关系设计器来开发用于实现相同目的的存储过程。

以下步骤假定您已通过有效的 DataContext 连接到 Northwind 数据库。 有关详细信息,请参阅如何:连接到数据库

更新数据库中的行

  1. 查询数据库中要更新的行。

  2. 对得到的 LINQ to SQL 对象中的成员值进行所需更改。

  3. 将更改提交到数据库。

示例

下面的示例查询数据库中编号为 11000 的订单,然后更改所得到的 ShipName 对象中的 ShipViaOrder 值。 最后,对这些成员值的更改将作为对 ShipNameShipVia 列的更改提交到数据库。

// Query the database for the row to be updated.
var query =
    from ord in db.Orders
    where ord.OrderID == 11000
    select ord;

// Execute the query, and change the column values
// you want to change.
foreach (Order ord in query)
{
    ord.ShipName = "Mariner";
    ord.ShipVia = 2;
    // Insert any additional changes to column values.
}

// Submit the changes to the database.
try
{
    db.SubmitChanges();
}
catch (Exception e)
{
    Console.WriteLine(e);
    // Provide for exceptions.
}
' Query the database for the row to be updated.
Dim ordQuery = _
    From ord In db.Orders _
    Where ord.OrderID = 11000 _
    Select ord

' Execute the query, and change the column values
' you want to change.
For Each ord As Order In ordQuery
    ord.ShipName = "Mariner"
    ord.ShipVia = 2
    ' Insert any additional changes to column values.
Next

' Submit the changes to the database.
Try
    db.SubmitChanges()
Catch e As Exception
    Console.WriteLine(e)
    ' Make some adjustments.
    ' ...
    ' Try again
    db.SubmitChanges()
End Try

请参阅