DataTable の作成

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

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

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

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

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

Note

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");  

関連項目