다음을 통해 공유


DataTable에 열 추가

A DataTable 는 테이블의 DataColumnColumns 속성에서 참조하는 개체의 컬렉션을 포함합니다. 이 열 컬렉션은 제약 조건과 함께 테이블의 스키마 또는 구조를 정의합니다.

DataColumn 생성자를 사용하거나 테이블의 Columns 속성인 Add 메서드를 호출하여 테이블 내에 DataColumn 개체를 DataColumnCollection만듭니다. Add 메서드는 선택적 ColumnName, DataTypeExpression 인수를 허용하고 컬렉션의 멤버로 새 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));  

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

주의

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

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

참고하십시오