web-dev-qa-db-ja.com

データビューとデータテーブルの違いは何ですか?

.NetのDataViewとDataTableの違いは何ですか?私が理解している限り、DataViewはDataTableの単なる誤った表示です。 DataViewはいつ使用する必要がありますか?

前もって感謝します。

41
kevin

クエリを実行し、コントロールのデータのサブセットを表示する場合、DataViewが役立ちます。これはほんの一例です。 DataViewのMSDNの例 を見てください。DataTablesでDataViewsを使用する場所を説明しています...

DataTable

データテーブルは、単一のデータベーステーブルのメモリ内表現です。同じように列と行があると考えることができます。 DataTableは、ADO.NETライブラリの中心的なオブジェクトです。 DataTableを使用する他のオブジェクトには、DataSetとDataViewが含まれます。

詳細については、MSDN The DataTable class を参照してください。

DataView

データビューはデータテーブルのビューで、SQLビューに少し似ています。多くの場合、Windowsフォームコントロールにバインドするために、行をフィルタリングおよびソートできます。

さらに、DataViewをカスタマイズして、DataTableのデータのサブセットを表示できます。この機能により、2つのコントロールを同じDataTableにバインドし、異なるバージョンのデータを表示できます。たとえば、1つのコントロールをテーブル内のすべての行を表示するDataViewにバインドし、2番目のコントロールをDataTableから削除された行のみを表示するように構成できます。 DataTableには、テーブルのデフォルトのDataViewを返すDefaultViewプロパティもあります。

詳細については、MSDN DataViewクラス を参照してください。

47
CharithJ

DataTableは単一のテーブル表現を意味しますが、DataSetは複数のテーブル表現です。

つまり、DataTableを使用すると、データベースから1つのテーブルしか保持できません。DataSetを使用すると、一度に複数のテーブルを保持できます...

DataViewは、DataSet...で使用可能なデータのビューを意味します(DataSetで使用可能なテーブルのビュー)。レコードの検索、ソート、レコードのフィルターに使用されます... DataViewを使用します。

7
SUNIL

dataViewでDataTableをフィルタリングできます。たとえば、すべてのパラメーターを含むDataSetがある場合、DataViewでパラメーターの1つを見つけることができます。

DataView dv = new DataView();
dv = new DataView(parameterDs.Tables[0], "ParameterName = '@" + parameter.Key + "'", string.Empty, DataViewRowState.CurrentRows);
6
masoud ramezani