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 つ以上のテーブルまたはリレーションが同じ名前を持つことができます。この場合、名前を使用してテーブルとリレーションを参照する際に大文字と小文字が区別されます。たとえば、DataSetdataSet に Table1 と table1 のテーブルがある場合、Table1 を参照するには dataSet.Tables["Table1"]、table1 を参照するには dataSet.Tables ["table1"] と名前を指定します。このいずれかのテーブルの参照に dataSet.Tables ["TABLE1"] と指定すると、例外が発生します。
特定の名前を持つテーブルまたはリレーションが 1 つのみの場合、大文字と小文字は区別されません。たとえば、DataSet に Table1 しか存在しない場合は、dataSet.Tables["TABLE1"] を使用してそのテーブルを参照できます。
メモ : |
---|
この動作は DataSet の CaseSensitive プロパティの影響を受けません。CaseSensitive プロパティは、DataSet 内のデータに適用され、並べ替え、検索、フィルタ処理、制約の適用などに影響を及ぼします。 |
名前空間のサポート
2.0 より前のバージョンの ADO.NET では、異なる名前空間に存在しているテーブルであっても、2 つのテーブルが同じ名前を持つことはできませんでした。ADO.NET 2.0 には、この制限はありません。したがって、DataSet に、Namespace プロパティ値が異なり、TableName プロパティ値が一致する 2 つのテーブルが存在しても問題ありません。