次の方法で共有


DataSet への DataTable の追加 (ADO.NET)

ADO.NET を使用して DataTable オブジェクトを作成し、そのオブジェクトを既存の DataSet に追加できます。 PrimaryKey プロパティと Unique プロパティを使用することで、DataTable の制約情報を設定できます。

DataSet を構築し、DataSet に新しい DataTable オブジェクトを追加してから、3 つの DataColumn オブジェクトをそのテーブルに追加する例を次に示します。 コードの最後では、1 つの列が主キーの列として設定されています。

Dim customerOrders As DataSet = New DataSet("CustomerOrders")

Dim ordersTable As DataTable = customerOrders.Tables.Add("Orders")

Dim pkOrderID As DataColumn = ordersTable.Columns.Add( _
    "OrderID", Type.GetType("System.Int32"))
ordersTable.Columns.Add("OrderQuantity", Type.GetType("System.Int32"))
ordersTable.Columns.Add("CompanyName", Type.GetType("System.String"))

ordersTable.PrimaryKey = New DataColumn() {pkOrderID}
DataSet customerOrders = new DataSet("CustomerOrders");

DataTable ordersTable = customerOrders.Tables.Add("Orders");

DataColumn pkOrderID = 
    ordersTable.Columns.Add("OrderID", typeof(Int32));
ordersTable.Columns.Add("OrderQuantity", typeof(Int32));
ordersTable.Columns.Add("CompanyName", typeof(string));

ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };

大文字と小文字の区別

大文字と小文字の区別が異なれば、DataSet に存在する 2 つ以上のテーブルまたはリレーションが同じ名前を持つことができます。 この場合、名前を使用してテーブルとリレーションを参照する際に大文字と小文字が区別されます。 たとえば、DataSet dataSetTable1table1 のテーブルがある場合、Table1 を参照するには dataSet.Tables["Table1"]table1 を参照するには dataSet.Tables ["table1"] と名前を指定します。 このいずれかのテーブルの参照に dataSet.Tables ["TABLE1"] と指定すると、例外が発生します。

特定の名前を持つテーブルまたはリレーションが 1 つのみの場合、大文字と小文字は区別されません。 たとえば、DataSetTable1 しか存在しない場合は、dataSet.Tables["TABLE1"] を使用してそのテーブルを参照できます。

メモメモ

この動作は DataSetCaseSensitive プロパティの影響を受けません。CaseSensitive プロパティは、DataSet 内のデータに適用され、並べ替え、検索、フィルター処理、制約の適用などに影響を及ぼします。

名前空間のサポート

2.0 より前のバージョンの ADO.NET では、異なる名前空間に存在しているテーブルであっても、2 つのテーブルが同じ名前を持つことはできませんでした。 ADO.NET 2.0 には、この制限はありません。 したがって、DataSet に、Namespace プロパティ値が異なり、TableName プロパティ値が一致する 2 つのテーブルが存在しても問題ありません。

参照

その他の技術情報

DataSets、DataTables、および DataViews (ADO.NET)