次の方法で共有


方法 : データベースの行を更新する (LINQ to SQL)

更新 : November 2007

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)」を参照してください。

データベースの行を更新するには

  1. データベースで更新する行をクエリします。

  2. 結果として得られた LINQ to SQL オブジェクトのメンバ値に、必要な変更を加えます。

  3. データベースに変更内容を送信します。

使用例

次の例では、データベースの注文 #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 デザイナ)

その他の技術情報

方法 : 変更の競合を管理する (LINQ to SQL)

データの変更と変更の送信 (LINQ to SQL)