次の方法で共有


DataTable の作成

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

DataTable オブジェクトを作成するには、DataTable コンストラクタを使用するか、DataTableCollection の 1 つである、DataSetTables プロパティの Add メソッドにコンストラクタ引数を渡します。

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 値を指定するときには、"Table" または "TableN" の形式の名前を使用しないことをお勧めします。これは、指定した名前が DataSet に既に存在する既定のテーブル名と競合しないようにするためです。指定した名前が既に存在する場合は、例外がスローされます。

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

Dim workTable as DataTable = New DataTable("Customers")
[C#]
DataTable workTable = new DataTable("Customers");

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

Dim custDS As DataSet = New DataSet
Dim custTable As DataTable = custDS.Tables.Add("CustTable")
[C#]
DataSet custDS = new DataSet();
DataTable custTable = custDS.Tables.Add("CustTable");

参照

DataTable の作成と使用 | DataAdapter からの DataSet の読み込み | XML からの DataSet の読み込み | XML の DataSet スキーマ情報の読み込み | DataTable クラス | DataTableCollection クラス