다음을 통해 공유


DataTable에 열 추가

DataTable는 테이블의 Columns 속성에 의해 참조되는 DataColumn 개체의 컬렉션을 포함하고 있습니다. 이 열 컬렉션은 제약 조건과 함께 테이블의 스키마 또는 구조를 정의합니다.

테이블의 Columns 속성에 있는 Add 메서드를 호출하거나 DataColumn 생성자를 사용하여 테이블 내에서 DataColumn 개체를 만듭니다 DataColumnCollection. 이 메서드는 Add 선택적 ColumnName, DataType 및 인수를 수락하고 Expression 컬렉션의 멤버로 새 DataColumn 메서드를 만듭니다. 또한 기존 DataColumn 개체를 수락하고 컬렉션에 추가하고 요청된 경우 추가 DataColumn 된 개체에 대한 참조를 반환합니다. 개체는 데이터 원본과 관련이 없으므로 DataTableDataColumn의 데이터 형식을 지정할 때 .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));

이 예제에서는 CustID 열의 속성이 DBNull 값을 허용하지 않도록 설정되어 있으며 값의 고유성을 제한합니다. 그러나 CustID 열을 테이블의 기본 키 열로 정의하면 AllowDBNull 속성이 자동으로 false로 설정되고, Unique 속성은 자동으로 true로 설정됩니다. 자세한 내용은 기본 키 정의합니다.

주의

열에 열 이름을 지정하지 않으면 열이 DataColumnCollection에 추가될 때 "Column1"부터 열N의 증분 기본 이름이 지정됩니다. 제공하는 이름이 DataColumnCollection의 기존 기본 열 이름과 충돌할 수 있으므로 열 이름을 제공할 때는 "열N"의 명명 규칙을 사용하지 않는 것이 좋습니다. 제공된 이름이 이미 있는 경우 예외가 발생합니다.

XElement에서 DataTypeDataColumnDataTable를 사용하는 경우 데이터를 읽을 때 XML serialization이 작동하지 않습니다. 예를 들어 XmlDocument 메서드를 사용하여 DataTable.WriteXml를 작성하면, 이를 XML로 직렬화할 때 XElement에 추가 부모 노드가 생깁니다. 이 문제를 해결하려면 SqlXml 대신 XElement 유형을 사용하세요. ReadXmlWriteXmlSqlXml와 함께 올바르게 작동합니다.

참고하십시오