DataTable への列の追加 (ADO.NET)
更新 : November 2007
DataTable には、テーブルの Columns プロパティによって参照される DataColumn オブジェクトのコレクションが格納されます。この列のコレクションと制約によって、テーブルのスキーマ (構造) が定義されます。
テーブル内で DataColumn オブジェクトを作成するには、DataColumn コンストラクタを使用するか、または DataColumnCollection の 1 つである、テーブルの Columns プロパティの Add メソッドを呼び出します。Add メソッドは、オプションの ColumnName、DataType、Expression の各引数を受け取り、新しい DataColumn をコレクションのメンバとして作成します。また、このメソッドは既存の DataColumn オブジェクトを受け取り、このオブジェクトをコレクションに追加します。必要な場合には、追加された DataColumn への参照を返します。DataTable オブジェクトはデータ ソースに依存しないため、DataColumn のデータ型を指定するときには、.NET Framework 型が使用されます。
DataTable に 4 つの列を追加する例を次に示します。
Dim workTable As DataTable = New DataTable("Customers")
Dim workCol As DataColumn = workTable.Columns.Add( _
"CustID", Type.GetType("System.Int32"))
workCol.AllowDBNull = false
workCol.Unique = true
workTable.Columns.Add("CustLName", Type.GetType("System.String"))
workTable.Columns.Add("CustFName", Type.GetType("System.String"))
workTable.Columns.Add("Purchases", Type.GetType("System.Double"))
DataTable workTable = new DataTable("Customers");
DataColumn workCol = workTable.Columns.Add("CustID", typeof(Int32));
workCol.AllowDBNull = false;
workCol.Unique = true;
workTable.Columns.Add("CustLName", typeof(String));
workTable.Columns.Add("CustFName", typeof(String));
workTable.Columns.Add("Purchases", typeof(Double));
この例では、DBNull 値を許可せずに値を一意の値に制約するように、CustID 列のプロパティが設定されています。ただし、CustID 列をテーブルの主キー列として定義した場合、AllowDBNull プロパティは自動的に false に設定され、Unique プロパティは自動的に true に設定されます。詳細については、「主キーの定義 (ADO.NET)」を参照してください。
注意 : |
---|
列名が指定されていない列を DataColumnCollection に追加する場合、この列には "Column1" から始まるインクリメンタル既定名 ColumnN が割り当てられます。列名を指定するときには、"ColumnN" の命名規則を使用しないことをお勧めします。これは、指定した名前が DataColumnCollection に既に存在する既定の列名と競合しないようにするためです。指定した名前が既に存在する場合は、例外がスローされます。 |