DataColumn.DataType 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
열에 저장된 데이터 형식을 가져오거나 설정합니다.
public:
property Type ^ DataType { Type ^ get(); void set(Type ^ value); };
[System.ComponentModel.TypeConverter(typeof(System.Data.ColumnTypeConverter))]
public Type DataType { get; set; }
public Type DataType { get; set; }
[System.ComponentModel.TypeConverter(typeof(System.Data.ColumnTypeConverter))]
[System.Data.DataSysDescription("DataColumnDataTypeDescr")]
public Type DataType { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Data.ColumnTypeConverter))>]
member this.DataType : Type with get, set
member this.DataType : Type with get, set
[<System.ComponentModel.TypeConverter(typeof(System.Data.ColumnTypeConverter))>]
[<System.Data.DataSysDescription("DataColumnDataTypeDescr")>]
member this.DataType : Type with get, set
Public Property DataType As Type
속성 값
열 데이터 형식을 나타내는 Type 개체입니다.
- 특성
예외
열에 저장된 데이터가 이미 있는 경우
예제
다음 예제에서는 여러 데이터 형식의 열을 에 추가한 DataTable다음 테이블에 한 행을 추가합니다.
public DataTable MakeDataTable(){
DataTable myTable;
DataRow myNewRow;
// Create a new DataTable.
myTable = new DataTable("My Table");
// Create DataColumn objects of data types.
DataColumn colString = new DataColumn("StringCol");
colString.DataType = System.Type.GetType("System.String");
myTable.Columns.Add(colString);
DataColumn colInt32 = new DataColumn("Int32Col");
colInt32.DataType = System.Type.GetType("System.Int32");
myTable.Columns.Add(colInt32);
DataColumn colBoolean = new DataColumn("BooleanCol");
colBoolean.DataType = System.Type.GetType("System.Boolean");
myTable.Columns.Add(colBoolean);
DataColumn colTimeSpan = new DataColumn("TimeSpanCol");
colTimeSpan.DataType = System.Type.GetType("System.TimeSpan");
myTable.Columns.Add(colTimeSpan);
DataColumn colDateTime = new DataColumn("DateTimeCol");
colDateTime.DataType = System.Type.GetType("System.DateTime");
myTable.Columns.Add(colDateTime);
DataColumn colDecimal = new DataColumn("DecimalCol");
colDecimal.DataType = System.Type.GetType("System.Decimal");
myTable.Columns.Add(colDecimal);
DataColumn colByteArray = new DataColumn("ByteArrayCol");
colByteArray.DataType = System.Type.GetType("System.Byte[]");
myTable.Columns.Add(colByteArray);
// Populate one row with values.
myNewRow = myTable.NewRow();
myNewRow["StringCol"] = "Item Name";
myNewRow["Int32Col"] = 2147483647;
myNewRow["BooleanCol"] = true;
myNewRow["TimeSpanCol"] = new TimeSpan(10,22,10,15,100);
myNewRow["DateTimeCol"] = System.DateTime.Today;
myNewRow["DecimalCol"] = 64.0021;
myNewRow["ByteArrayCol"] = new Byte[] { 1, 5, 120 };
myTable.Rows.Add(myNewRow);
return myTable;
}
Public Function MakeDataTable() As DataTable
Dim myTable As DataTable
Dim myNewRow As DataRow
' Create a new DataTable.
myTable = New DataTable("My Table")
' Create DataColumn objects of data types.
Dim colString As New DataColumn("StringCol")
colString.DataType = System.Type.GetType("System.String")
myTable.Columns.Add(colString)
Dim colInt32 As New DataColumn("Int32Col")
colInt32.DataType = System.Type.GetType("System.Int32")
myTable.Columns.Add(colInt32)
Dim colBoolean As New DataColumn("BooleanCol")
colBoolean.DataType = System.Type.GetType("System.Boolean")
myTable.Columns.Add(colBoolean)
Dim colTimeSpan As New DataColumn("TimeSpanCol")
colTimeSpan.DataType = System.Type.GetType("System.TimeSpan")
myTable.Columns.Add(colTimeSpan)
Dim colDateTime As New DataColumn("DateTimeCol")
colDateTime.DataType = System.Type.GetType("System.DateTime")
myTable.Columns.Add(colDateTime)
Dim colDecimal As New DataColumn("DecimalCol")
colDecimal.DataType = System.Type.GetType("System.Decimal")
myTable.Columns.Add(colDecimal)
' Populate one row with values.
myNewRow = myTable.NewRow()
myNewRow("StringCol") = "Item Name"
myNewRow("Int32Col") = 2147483647
myNewRow("BooleanCol") = True
myNewRow("TimeSpanCol") = New TimeSpan(10,22,10,15,100)
myNewRow("DateTimeCol") = System.DateTime.Today
myNewRow("DecimalCol") = 64.0021
myNewRow("ByteArrayCol") = New [Byte]() {1, 5, 120}
myTable.Rows.Add(myNewRow)
MakeDataTable = myTable
End Function
설명
DataType 값을 설정하는 것은 데이터 원본에서 데이터를 올바르게 만들고 업데이트하도록 보장하는 데 매우 중요합니다.
속성은 DataType 다음과 같은 기본 .NET Framework 데이터 형식을 지원합니다.
다음과 같은 배열 형식을 사용할 수 있습니다.
Byte[]
열이 데이터를 저장하기 시작한 후 이 속성을 변경할 때 예외가 생성됩니다.
AutoIncrement 속성을 설정 DataType 하기 전에 이 로 true
설정되고 정수 형식을 제외한 모든 항목으로 형식을 설정하려고 하면 예외가 생성됩니다.
참고
데이터 형식 Byte[]
의 열은 기본 .NET Framework 데이터 형식과 달리 참조 데이터 형식이므로 특정 경우에 특별한 처리가 필요합니다. 데이터 형식 Byte[]
의 열이 의 또는 키로 PrimaryKeySortRowFilter 사용되는 경우 열 값에 대한 DataView변경 내용에는 열 값을 별도로 인스턴스화된 Byte[]
개체에 할당 Byte[]
해야 합니다. 이 할당은 정렬, 필터링 및 기본 키 작업에서 사용하는 내부 인덱스의 업데이트를 트리거하는 데 필요합니다. 이는 다음 예에 의해 설명됩니다.
byte[] columnValue = (byte[])myDataTable.Rows[0][0];
byte[] newValue = (byte[])columnValue.Clone();
newValue[1] = 2;
myDataTable.Rows[0][0] = newValue;
참고
열을 기본 .NET Framework 데이터 형식 이외의 데이터 형식으로 정의할 수 있지만 Byte[]
이러한 열은 다음과 같은 사용 제한에 따라 사용자 정의 형식으로 처리됩니다. (사용자 정의 형식에 대한 자세한 내용은 User-Defined 형식 만들기 및 사용을 참조하세요.)
열이 또는 에 대해 DataView또는 로 Sort 사용되는 PrimaryKey경우 변경할 수 없는 필드로 처리되어야 합니다. 열 데이터가 테이블에 추가된 후에는 변경되지 않아야 합니다.
해당 은 ColumnMapping 로만 설정할
MappingType.Element
수 있습니다.열의 데이터 형식을 구현하는 클래스는 로 SerializableAttribute표시되어야 하며 필요한 경우 또는 IXmlSerializable 인터페이스를 ISerializable 구현해야 합니다.
변경 내용 추적에 대한 지원은 제한됩니다. 클래스의 변경 내용 추적 메커니즘을 활용 DataTable 하려면 열의 데이터 형식을 구현하는 클래스가 인터페이스를 구현 IChangeTracking 하거나 행에서 를 호출 SetModified 하거나 열 값 개체를 별도로 인스턴스화된 열 값 개체에 할당하여 열 값이 수정된 시기를 알리는 DataRow 책임을 맡아야 합니다.
적용 대상
추가 정보
.NET