12

WPF DataGrid で変更をデータベースに保存するにはどうすればよいですか?

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

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

誰かが私が欠けているものを知っていますか?

4

1 に答える 1

18

更新の実行

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

次の例は、ユーザーが行を変更するたびに DataTable 状態の変更がデータベースに書き込まれるように、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);
}
于 2009-07-21T06:49:22.513 に答える