如何:更新数据库中的行 (LINQ to SQL)
您可以通过如下方法更新数据库中的行:修改与 LINQ to SQL Table<TEntity> 集合关联的对象的成员值,然后将所做的更改提交至数据库。LINQ to SQL 会将您所做的更改转换成相应的 SQL UPDATE 命令。
注意 |
---|
您可以重写 Insert、Update 和 Delete 数据库操作的 LINQ to SQL 默认方法。有关更多信息,请参见自定义插入、更新和删除操作 (LINQ to SQL)。 使用 Visual Studio 的开发人员可以使用 对象关系设计器 来开发用于实现相同目的的存储过程。有关更多信息,请参见 对象关系设计器(O/R 设计器) 和 对象关系设计器(O/R 设计器) 和 对象关系设计器(O/R 设计器). |
以下步骤假定您已通过有效的 DataContext 连接到 Northwind 数据库。 有关更多信息,请参见如何:连接到数据库 (LINQ to SQL)。
更新数据库中的行
查询数据库中要更新的行。
对得到的 LINQ to SQL 对象中的成员值进行所需的更改。
将更改提交到数据库。
示例
下面的示例查询数据库中编号为 11000 的订单,然后更改所得到的 Order 对象中的 ShipName 和 ShipVia 值。 最后,对这些成员值的更改将作为对 ShipName 和 ShipVia 列的更改提交到数据库。
' 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
// 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.
}