DataTable からDataViewを生成する方法

  既存の DataTable から新たに DataView を生成するには、次の2つの方法があります。何れの方法も、 DataTable のカスタマイズされたビューを生成することができます。
  (1) DataTable の「DefaultView」プロパティを使用して取得します。
  (2) DataVlew のインスタンスを生成して、「Table」プロパティに DataTable を設定します。
【使い方】

 (1) DataTable の「DefaultView」プロパティを使用して取得します。
     (DataView 1つのみ生成可能)
  // dt は DataTable
  // DataViewを取得する
  DataView dv = dt.DefaultView;

 (2) DataVlew のインスタンスを生成して、「Table」プロパティに DataTable を設定します。
    (異なる複数の DataView を生成可能)
  // dt は DataTable
  // DataViewを生成する
  DataView dv = new DataView();
  dv.Table = dt;
【注意】
 DataView のインデックスは、並べ替え(Sort)、フィルタ処理(RowFilter)または行状態フィルタ(RowStateFilter)の影響により、元のDataTable の Row コレクションのインデックスと必ずしも一致しません。(指定が無い場合のみ一致します。)
 但し、DataView のインデックスで取得できる DataRowView の「Row」プロパティで取得できる DataRow は、元の DataTable の Row コレクションの該当行(DataRow)になります。
 DataTable の「DefaultView」プロパティで取得できる DataView は常に同じインスタンスを取得します。従って、同じ DataTable から異なる DataView を生成する場合は、1つを除いて、上記(2)の方法を用いる必要があります。
戻る