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

更新 : November 2007

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

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

aeskbwf7.alert_note(ja-jp,VS.90).gifメモ :

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

名前空間のサポート

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

参照

その他の技術情報

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