2009-07-21 25 views
9

変更をデータベースに保存するためにWPF DataGridを取得するにはどうすればよいですか?変更をWPF DataGridに保存してデータベースに戻すにはどうすればよいですか?

DataGridコントロールをDataTableオブジェクトにデータバインドし、そのテーブルに基本的な情報を取得する非常に単純なSELECTクエリを設定しました。データはコントロールでうまく表示されます。

ただし、コントロールを使用してデータを編集すると、変更はDBにプッシュバックされません。

誰かが迷っていることを知っていますか?

答えて

16

実行アップデート

ユーザーがデータグリッド内の顧客データを編集

は、バインドされ、メモリ内のDataTableはそれに応じて更新されます。ただし、これらの更新は自動的にデータベースに書き戻されません。アプリケーションの要件に応じて、DataTableへの変更がデータベースに書き戻されるのは、開発者次第です。たとえば、「送信」ボタンを使用して変更のバッチを送信したい場合や、ユーザーが各行の編集をコミットするときにデータベースを更新したい場合があります。これらをサポートするために、DataTableに含まれる行には、データベースと同期する必要のある変更が含まれているかどうかを示すRowStateプロパティがあります。同期処理は、TableAdapterのUpdateメソッドを使用して簡単に実行できます。 URL: WPF DataGrid examples

次の例では、ユーザが行をどのように変化するかRowChangedとデータテーブル状態の変更がデータベースに書き込まれるようにイベントを処理することができ、各時間のrowDeleted示す:

public CustomerDataProvider() 
{ 
    NorthwindDataSet dataset = new NorthwindDataSet(); 

    adapter = new CustomersTableAdapter(); 
    adapter.Fill(dataset.Customers); 

    dataset.Customers.CustomersRowChanged += 
     new NorthwindDataSet.CustomersRowChangeEventHandler(CustomersRowModified); 
    dataset.Customers.CustomersRowDeleted += 
     new NorthwindDataSet.CustomersRowChangeEventHandler(CustomersRowModified); 
} 

void CustomersRowModified(object sender, NorthwindDataSet.CustomersRowChangeEvent e) 
{ 
    adapter.Update(dataset.Customers); 
} 
+0

これは非常に便利。ありがとう! – Giffyguy

関連する問題