DataTable の作成Creating a DataTable

DataTable は 1 つのインメモリ リレーショナル データのテーブルを表します。DataTable は単独で作成および使用することも、他の .NET Framework オブジェクトから DataSet のメンバーとして使用することもできます。A DataTable, which represents one table of in-memory relational data, can be created and used independently, or can be used by other .NET Framework objects, most commonly as a member of a DataSet.

DataTable オブジェクトは、適切な DataTable コンストラクターを使用することにより作成できます。You can create a DataTable object by using the appropriate DataTable constructor. このオブジェクトを DataSet に追加するには、Add メソッドを使用して、DataTable オブジェクトの Tables コレクションにオブジェクトを追加します。You can add it to the DataSet by using the Add method to add it to the DataTable object's Tables collection.

DataSet 内に DataTable オブジェクトを作成する場合は、DataAdapter オブジェクトの Fill メソッドまたは FillSchema メソッドを使用するか、DataSetReadXmlReadXmlSchema、または InferXmlSchema メソッドを使用して定義済みまたは推論による XML スキーマから作成することができます。You can also create DataTable objects within a DataSet by using the Fill or FillSchema methods of the DataAdapter object, or from a predefined or inferred XML schema using the ReadXml, ReadXmlSchema, or InferXmlSchema methods of the DataSet. ある DataSetTables コレクションのメンバーとして追加した DataTable を、その後で他の DataSet のテーブルのコレクションに追加することはできません。Note that after you have added a DataTable as a member of the Tables collection of one DataSet, you cannot add it to the collection of tables of any other DataSet.

最初に作成した時点では、DataTable にはスキーマ (構造) がありません。When you first create a DataTable, it does not have a schema (that is, a structure). テーブルのスキーマを定義するには、DataColumn オブジェクトを作成し、テーブルの Columns コレクションに追加する必要があります。To define the schema of the table, you must create and add DataColumn objects to the Columns collection of the table. テーブルの主キー列を定義したり、Constraint オブジェクトを作成してテーブルの Constraints コレクションに追加したりすることもできます。You can also define a primary key column for the table, and create and add Constraint objects to the Constraints collection of the table. DataTable のスキーマを定義した後で、DataRow オブジェクトをテーブルの Rows コレクションに追加することにより、データ行をテーブルに追加できます。After you have defined the schema for a DataTable, you can add rows of data to the table by adding DataRow objects to the Rows collection of the table.

DataTable を作成するときに TableName プロパティの値を指定する必要はありません。このプロパティは、後から指定することも、空のままにしておくこともできます。You are not required to supply a value for the TableName property when you create a DataTable; you can specify the property at another time, or you can leave it empty. ただし、TableName 値のないテーブルを DataSet に追加した場合、そのテーブルの名前は既定のテーブル名 TableN になります。この既定名は Table0 に相当する "Table" から始まり、連続する番号が割り当てられていきます。However, when you add a table without a TableName value to a DataSet, the table will be given an incremental default name of TableN, starting with "Table" for Table0.

注意

TableName の値を指定するときは、"TableN" の命名規則を使用しないことをお勧めします。これは、指定した名前が DataSet に既に存在する既定のテーブル名と競合しないようにするためです。We recommend that you avoid the "TableN" naming convention when you supply a TableName value, because the name you supply may conflict with an existing default table name in the DataSet. 指定した名前が既に存在する場合は、例外がスローされます。If the supplied name already exists, an exception is thrown.

次の例では、DataTable オブジェクトのインスタンスを作成し、"Customers" という名前を割り当てます。The following example creates an instance of a DataTable object and assigns it the name "Customers."

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

次の例では、DataTable のインスタンスを作成し、DataSetTables コレクションに追加します。The following example creates an instance of a DataTable by adding it to the Tables collection of a DataSet.

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

関連項目See also