DataTable は 1 つのインメモリ リレーショナル データ テーブルを表します。DataTable は単独で作成および使用することも、他の .NET Framework オブジェクトから DataSet のメンバとして使用することもできます。
DataTable オブジェクトを作成するには、DataTable コンストラクタを使用するか、DataTableCollection の 1 つである、DataSet の Tables プロパティの Add メソッドにコンストラクタ引数を渡します。
DataSet の内部で DataTable オブジェクトを作成する場合は、DataAdapter オブジェクトの Fill メソッドまたは FillSchema メソッドを使用できます。また、定義済みまたは推論による XML スキーマで、DataSet の ReadXml、ReadXmlSchema、または InferXmlSchema の各メソッドを使用して作成することもできます。DataTable を 1 つの DataSet の Tables コレクションのメンバとして追加した後で、その DataTable を他の DataSet のテーブルのコレクションに追加することはできません。
最初に作成された時点では、DataTable にはスキーマ (構造) がありません。テーブルのスキーマを定義するには、DataColumn オブジェクトを作成し、テーブルの Columns コレクションに追加する必要があります。テーブルの主キー列を定義したり、Constraint オブジェクトを作成してテーブルの Constraints コレクションに追加したりすることもできます。DataTable のスキーマを定義した後で、DataRow オブジェクトをテーブルの Rows コレクションに追加することにより、データ行をテーブルに追加できます。
DataTable を作成するときに TableName プロパティの値を指定する必要はありません。このプロパティは、後から指定することも、空のままにしておくこともできます。ただし、TableName 値のないテーブルを DataSet に追加した場合、そのテーブルの名前は既定のテーブル名 TableN になります。この既定名は Table0 に相当する "Table" から始まり、連続する番号が割り当てられていきます。
メモ TableName 値を指定するときには、"Table" または "TableN" の形式の名前を使用しないことをお勧めします。これは、指定した名前が DataSet に既に存在する既定のテーブル名と競合しないようにするためです。指定した名前が既に存在する場合は、例外がスローされます。
DataTable オブジェクトのインスタンスを作成し、"Customers" という名前を割り当てる例を次に示します。
Dim workTable as DataTable = New DataTable("Customers")
[C#]
DataTable workTable = new DataTable("Customers");
DataTable のインスタンスを作成し、DataSet の Tables コレクションに追加する例を次に示します。
Dim custDS As DataSet = New DataSet
Dim custTable As DataTable = custDS.Tables.Add("CustTable")
[C#]
DataSet custDS = new DataSet();
DataTable custTable = custDS.Tables.Add("CustTable");
参照
DataTable の作成と使用 | DataAdapter からの DataSet の読み込み | XML からの DataSet の読み込み | XML の DataSet スキーマ情報の読み込み | DataTable クラス | DataTableCollection クラス