DataViewでは、DataTableでデータを並べ替え、フィルター処理するいくつかの方法が提供されます。
Sort プロパティを使用すると、単一または複数の列の並べ替え順序を指定し、ASC (昇順) パラメーターと DESC (降順) パラメーターを含めることができます。
ApplyDefaultSort プロパティを使用すると、テーブルの主キー列または列に基づいて、並べ替え順序を昇順で自動的に作成できます。 ApplyDefaultSort
Sortプロパティが null 参照または空の文字列である場合、およびテーブルに主キーが定義されている場合にのみ適用されます。RowFilter プロパティを使用して、列の値に基づいて行のサブセットを指定できます。
RowFilterプロパティの有効な式の詳細については、Expression クラスの DataColumn プロパティのリファレンス情報を参照してください。データのサブセットの動的ビューを提供するのではなく、データに対する特定のクエリの結果を返す場合は、Find プロパティを設定するのではなく、FindRowsの
DataViewまたはRowFilterメソッドを使用して最適なパフォーマンスを実現します。RowFilterプロパティを設定すると、データのインデックスが再構築され、アプリケーションにオーバーヘッドが追加され、パフォーマンスが低下します。RowFilterプロパティは、バインドされたコントロールがフィルター処理された結果を表示するデータ バインド アプリケーションで最適に使用されます。FindメソッドとFindRowsメソッドは、インデックスを再構築する必要なく、現在のインデックスを利用します。FindメソッドとFindRowsメソッドの詳細については、「行の検索」を参照してください。RowStateFilter プロパティを使用して、表示する行のバージョンを指定できます。
DataViewは、基になる行のRowStateに応じて、公開する行バージョンを暗黙的に管理します。 たとえば、RowStateFilterが DataViewRowState.Deleted に設定されている場合、DataViewは、Original行バージョンがないため、すべてのDeleted行のCurrent行バージョンを公開します。RowVersionの プロパティを使用して、どの行バージョンの行が公開されているかを確認できます。次の表に、 DataViewRowState のオプションを示します。
DataViewRowState オプション 説明 CurrentRows すべての Current行、追加済み行、および行のCurrentバージョン。 これが既定値です。"追加" すべての Current行に対応するAdded行のバージョン。削除 すべての Original行に対応するDeleted行のバージョン。ModifiedCurrent すべての Current行に対応するModified行のバージョン。ModifiedOriginal すべての Original行に対応するModified行のバージョン。なし 行がありません。 OriginalRows Originalすべての変更されていない行、変更された行、およびDeleted行の行バージョン。変更なし すべての Current行に対応するUnchanged行のバージョン。
行の状態と行のバージョンの詳細については、「 行の状態と行のバージョン」を参照してください。
次のコード例では、在庫数が並べ替えレベル以下のすべての製品を表示するビューを作成し、最初に仕入先 ID で並べ替え、次に製品名で並べ替えます。
Dim prodView As DataView = New DataView(prodDS.Tables("Products"), _
"UnitsInStock <= ReorderLevel", _
"SupplierID, ProductName", _
DataViewRowState.CurrentRows)
DataView prodView = new DataView(prodDS.Tables["Products"],
"UnitsInStock <= ReorderLevel",
"SupplierID, ProductName",
DataViewRowState.CurrentRows);