DataTable の作成
DataTable は 1 つのインメモリ リレーショナル データのテーブルを表します。DataTable は単独で作成および使用することも、他の .NET Framework オブジェクトから DataSet のメンバーとして使用することもできます。
DataTable オブジェクトは、適切な DataTable コンストラクターを使用することにより作成できます。 このオブジェクトを DataSet に追加するには、Add メソッドを使用して、DataSet オブジェクトの Tables コレクションにオブジェクトを追加します。
DataSet 内に DataTable オブジェクトを作成する場合は、DataAdapter オブジェクトの Fill メソッドまたは FillSchema メソッドを使用するか、DataSet の ReadXml、ReadXmlSchema、または InferXmlSchema メソッドを使用して定義済みまたは推論による XML スキーマから作成することができます。 ある DataSet の Tables コレクションのメンバーとして追加した 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 のインスタンスを作成し、DataSet の Tables コレクションに追加します。
Dim customers As DataSet = New DataSet
Dim customersTable As DataTable = _
customers.Tables.Add("CustomersTable")
DataSet customers = new DataSet();
DataTable customersTable = customers.Tables.Add("CustomersTable");