2

BindingList を使用して、Windows フォーム アプリケーションの DataGridView に Person オブジェクトのリストを表示しています。DataGridView を変更すると、基になる BindingList が変更されます。この部分は機能しています。

ここで、リストをデータベース テーブルに保持したいと考えています。データベースからリストを読み取って Person リストに入力するのは簡単ですが、DataGridView から人を追加/編集/削除した場合、その変更をデータベースに戻す方法とタイミングを教えてください。

(第二に、このアプローチは大丈夫ですか、それとも全体像が欠けていますか?抽象化されたオブジェクト指向の方法でコードを操作したいので、データテーブルを使用したくありません。)

4

1 に答える 1

1

最初に Windows フォームでオブジェクトを簡単に永続化するには、LINQ2SQLを使用できます。これは、必要なことを正確に実行し、データベースからオブジェクトを収集するときにオブジェクトを具体化します。

簡単な例として、サポートされているデータベース (SQL Server (Express)) のデータベース スキーマから linq コンテキストを作成した後、必要なのは、フォームでそのインスタンスを作成し、データの単一のアトミック操作 (読み取り、編集、書き込み、またはキャンセル。

  private YourAppContext context;

  private void RenewContext()
  {
     context = new YourAppContext();
  }

  private void LoadData()
  {
    RenewContext();
    DataGridView1.DataSource = context.Articles.OrderByDescending(x => x.DatePosted).Take(10);
  }

  private void AcceptButtonPressed()
  {
    context.SubmitChanges();
  }

  private void CancelButtonPressed()
  {
    LoadData();
  }

明らかに、BindingSource を介してデータを渡すことができます。

于 2011-01-11T00:20:55.160 に答える