方法 : データベースの行を更新する (LINQ to SQL)
LINQ to SQL の Table<TEntity> コレクションに関連付けられたオブジェクトのメンバーの値を変更し、その変更内容をデータベースに送信することで、データベースの行を更新できます。LINQ to SQL によって、変更内容が SQL の UPDATE コマンドに適切に変換されます。
メモ |
---|
LINQ to SQL の Insert、Update、および Delete の既定のデータベース操作メソッドはオーバーライドできます。詳細については、「挿入、更新、および削除の各操作のカスタマイズ (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.
}
参照
処理手順
方法 : 更新、挿入、および削除を実行するストアド プロシージャを割り当てる (O/R デザイナー)