Share via


DataTable の作成 (ADO.NET)

DataTable は 1 つのインメモリ リレーショナル データのテーブルを表します。DataTable は単独で作成および使用することも、他の .NET Framework オブジェクトから DataSet のメンバーとして使用することもできます。

DataTable オブジェクトは、適切な DataTable コンストラクターを使用することにより作成できます。 このオブジェクトを DataSet に追加するには、Add メソッドを使用して、DataTable オブジェクトの Tables コレクションにオブジェクトを追加します。

DataSet の内部で DataTable オブジェクトを作成する場合は、DataAdapter オブジェクトの Fill メソッドまたは FillSchema メソッドを使用できます。また、定義済みまたは推論による XML スキーマで、DataSetReadXmlReadXmlSchema、または InferXmlSchema の各メソッドを使用して作成することもできます。 DataTable を 1 つの DataSetTables コレクションのメンバーとして追加した後で、その DataTable を他の DataSet のテーブルのコレクションに追加することはできません。

最初に作成した時点では、DataTable にはスキーマ (構造) がありません。 テーブルのスキーマを定義するには、DataColumn オブジェクトを作成し、テーブルの Columns コレクションに追加する必要があります。 テーブルの主キー列を定義したり、Constraint オブジェクトを作成してテーブルの Constraints コレクションに追加したりすることもできます。 DataTable のスキーマを定義した後で、DataRow オブジェクトをテーブルの Rows コレクションに追加することにより、データ行をテーブルに追加できます。

DataTable を作成するときに TableName プロパティの値を指定する必要はありません。このプロパティは、後から指定することも、空のままにしておくこともできます。 ただし、TableName 値のないテーブルを DataSet に追加した場合、そのテーブルの名前は既定のテーブル名 TableN になります。この既定名は Table0 に相当する "Table" から始まり、連続する番号が割り当てられていきます。

メモメモ

TableName 値を指定するときには、"TableN" の命名規則を使用しないことをお勧めします。これは、指定した名前が DataSet に既に存在する既定のテーブル名と競合しないようにするためです。指定した名前が既に存在する場合は、例外がスローされます。

DataTable オブジェクトのインスタンスを作成し、"Customers" という名前を割り当てる例を次に示します。

Dim workTable as DataTable = New DataTable("Customers")
DataTable workTable = new DataTable("Customers");

DataTable のインスタンスを作成し、DataSetTables コレクションに追加する例を次に示します。

Dim customers As DataSet = New DataSet
Dim customersTable As DataTable = _
   customers.Tables.Add("CustomersTable")
DataSet customers = new DataSet();
DataTable customersTable = customers.Tables.Add("CustomersTable");

参照

参照

DataTable

DataTableCollection

概念

DataAdapter からの DataSet の読み込み (ADO.NET)

XML からの DataSet の読み込み (ADO.NET)

XML の DataSet スキーマ情報の読み込み (ADO.NET)

その他の技術情報

DataTable (ADO.NET)