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.

データセット内にDataTableオブジェクトを作成するには、 DataAdapterオブジェクトのFillメソッドまたはFillSchemaメソッドを使用するか、または、 ReadXml, readxmlschema を使用して、定義済みまたは推論された XML スキーマから作成することもできます。データセットの、、またはInferXmlSchemaメソッド。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. DataTable を1つのデータセットtablesコレクションのメンバーとして追加した後は、そのDataTableを他のデータセットのテーブルのコレクションに追加することはできないことに注意してください。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). テーブルのスキーマを定義するには、テーブルのColumnsコレクションDataColumnにオブジェクトを作成し、追加する必要があります。To define the schema of the table, you must create and add DataColumn objects to the Columns collection of the table. テーブルの主キー列を定義し、テーブルの制約コレクションに制約オブジェクトを作成して追加することもできます。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.

TableName DataTableを作成するときにプロパティの値を指定する必要はありません。プロパティを別の時点で指定することも、空のままにすることもできます。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値を持たないテーブルをデータセットに追加すると、テーブルには、Table0 の "Table" で始まるテーブルNの増分既定の名前が与えられます。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" という名前付け規則を使用しないことをお勧めします。これは、指定した名前がデータセット内の既存の既定のテーブル名と競合する可能性があるためです。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");  

次の例では、データセットTablesコレクションに追加することによって、 DataTableのインスタンスを作成します。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 = _  
DataSet customers = new DataSet();  
DataTable customersTable = customers.Tables.Add("CustomersTable");  

関連項目See also