DataView クラス
アセンブリ: System.Data (system.data.dll 内)

Public Class DataView Inherits MarshalByValueComponent Implements IBindingListView, IBindingList, IList, ICollection, _ IEnumerable, ITypedList, ISupportInitializeNotification, ISupportInitialize
public class DataView : MarshalByValueComponent, IBindingListView, IBindingList, IList, ICollection, IEnumerable, ITypedList, ISupportInitializeNotification, ISupportInitialize
public ref class DataView : public MarshalByValueComponent, IBindingListView, IBindingList, IList, ICollection, IEnumerable, ITypedList, ISupportInitializeNotification, ISupportInitialize

DataView の主な機能は、Windows フォームと Web フォームの両方でデータを連結できるようにすることです。
DataView をカスタマイズして、DataTable からデータのサブセットを表示することもできます。この機能を使用すると、同じ DataTable に連結されていて、異なるバージョンのデータを表示できる 2 つのコントロールを使用できます。たとえば、一方のコントロールをテーブル内のすべての行が表示される DataView に連結し、他方のコントロールを DataTable から削除された行だけを表示するよう構成できます。DataTable には DefaultView プロパティも含まれています。これは、テーブルの既定の DataView を返します。たとえば、テーブルのカスタム ビューを作成する場合は、DefaultView によって返された DataView に対して RowFilter を設定します。
フィルタ処理され並べ替えられたデータのビューを作成するには、RowFilter プロパティと Sort プロパティを設定します。次に、Item プロパティを使用して単一の DataRowView を返します。
AddNew メソッドと Delete メソッドを使用する方法でも、行セットに行を追加したり、行を削除できます。これらのメソッドを使用するときは、削除された行または新しい行だけが DataView に表示されるように RowStateFilter プロパティを設定できます。

1 つの列と 5 つの行で単一の DataTable を作成する例を次に示します。2 つの DataView オブジェクトを作成し、各オブジェクトが異なるテーブル データのビューを表示するように RowStateFilter を設定します。次に、値を出力します。
Private Sub DemonstrateDataView() ' Create one DataTable with one column. Dim table As DataTable = New DataTable("table") Dim colItem As DataColumn = New DataColumn("item", _ Type.GetType("System.String")) table.Columns.Add(colItem) ' Add five items. Dim NewRow As DataRow Dim i As Integer For i = 0 To 4 NewRow = table.NewRow() NewRow("item") = "Item " & i table.Rows.Add(NewRow) Next table.AcceptChanges() ' Create two DataView objects with the same table. Dim firstView As DataView = New DataView(table) Dim secondView As DataView = New DataView(table) ' Change the values in the table. table.Rows(0)("item") = "cat" table.Rows(1)("item") = "dog" ' Print current table values. PrintTableOrView(table, "Current Values in Table") ' Set first DataView to show only modified versions of original rows. firstView.RowStateFilter = DataViewRowState.ModifiedOriginal ' Print values. PrintTableOrView(firstView, "First DataView: ModifiedOriginal") ' Add one New row to the second view. Dim rowView As DataRowView rowView = secondView.AddNew() rowView("item") = "fish" ' Set second DataView to show modified versions of ' current rows, or New rows. secondView.RowStateFilter = DataViewRowState.ModifiedCurrent _ Or DataViewRowState.Added ' Print modified and Added rows. PrintTableOrView(secondView, _ "Second DataView: ModifiedCurrent or Added") End Sub Overloads Private Sub PrintTableOrView( _ ByVal view As DataView, ByVal label As String) Console.WriteLine(label) Dim i As Integer For i = 0 To view.count - 1 Console.WriteLine(view(i)("item")) Next Console.WriteLine() End Sub Overloads Private Sub PrintTableOrView( _ ByVal table As DataTable, ByVal label As String) Console.WriteLine(label) Dim i As Integer For i = 0 To table.Rows.Count - 1 Console.WriteLine(table.Rows(i)("item")) Next Console.WriteLine() End Sub
private void DemonstrateDataView() { // Create one DataTable with one column. DataTable table = new DataTable("table"); DataColumn colItem = new DataColumn("item", Type.GetType("System.String")); table.Columns.Add(colItem); // Add five items. DataRow NewRow; for(int i = 0; i <5; i++) { NewRow = table.NewRow(); NewRow["item"] = "Item " + i; table.Rows.Add(NewRow); } // Change the values in the table. table.Rows[0]["item"]="cat"; table.Rows[1]["item"] = "dog"; table.AcceptChanges(); // Create two DataView objects with the same table. DataView firstView = new DataView(table); DataView secondView = new DataView(table); // Print current table values. PrintTableOrView(table,"Current Values in Table"); // Set first DataView to show only modified // versions of original rows. firstView.RowStateFilter=DataViewRowState.ModifiedOriginal; // Print values. PrintTableOrView(firstView,"First DataView: ModifiedOriginal"); // Add one New row to the second view. DataRowView rowView; rowView=secondView.AddNew(); rowView["item"] = "fish"; // Set second DataView to show modified versions of // current rows, or New rows. secondView.RowStateFilter=DataViewRowState.ModifiedCurrent | DataViewRowState.Added; // Print modified and Added rows. PrintTableOrView(secondView, "Second DataView: ModifiedCurrent | Added"); } private void PrintTableOrView(DataTable table, string label) { // This function prints values in the table or DataView. Console.WriteLine("\n" + label); for(int i = 0; i<table.Rows.Count;i++) { Console.WriteLine("\table" + table.Rows[i]["item"]); } Console.WriteLine(); } private void PrintTableOrView(DataView view, string label) { // This overload prints values in the table or DataView. Console.WriteLine("\n" + label); for(int i = 0; i<view.Count;i++) { Console.WriteLine("\table" + view[i]["item"]); } Console.WriteLine(); }

System.ComponentModel.MarshalByValueComponent
System.Data.DataView


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- DataView クラスのページへのリンク