Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
Previous Versions
.NET Framework 1.1
.NET Framework
Reference
System.Data
DataColumn Class
Properties
 DataType Property

  Switch on low bandwidth view
This page is specific to
Microsoft Visual Studio 2003/.NET Framework 1.1

Other versions are also available for the following:
.NET Framework Class Library
DataColumn.DataType Property

Gets or sets the type of data stored in the column.

[Visual Basic]
Public Property DataType As Type
[C#]
public Type DataType {get; set;}
[C++]
public: __property Type* get_DataType();
public: __property void set_DataType(Type*);
[JScript]
public function get DataType() : Type;
public function set DataType(Type);

Property Value

A Type object that represents the column data type.

Exceptions

Exception Type Condition
ArgumentException The column already has data stored.
ArgumentException AutoIncrement is true, but the value is set to a type a unsupported by AutoIncrement.

Remarks

Setting the DataType value is critical to ensuring the correct creation and updating of data in a data source.

The DataType property supports the base .NET Framework data types shown below:

An exception is generated when changing this property after the column has begun storing data.

If AutoIncrement is set to true before setting the DataType property, and you attempt to set the type to anything except an integer type, an exception is generated.

Example

[Visual Basic, C#, C++] The following example adds columns of several data types to a DataTable, then adds one row to the table.

[Visual Basic] 
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 DataColumn = New DataColumn("StringCol")
    colString.DataType = System.Type.GetType("System.String")
    myTable.Columns.Add(colString) 
 
    Dim colInt32 As DataColumn = New DataColumn("Int32Col")
    colInt32.DataType = System.Type.GetType("System.Int32")
    myTable.Columns.Add(colInt32)
 
    Dim colBoolean As DataColumn = New DataColumn("BooleanCol")
    colBoolean.DataType = System.Type.GetType("System.Boolean")
    myTable.Columns.Add(colBoolean)
 
    Dim colTimeSpan As DataColumn = New DataColumn("TimeSpanCol")
    colTimeSpan.DataType = System.Type.GetType("System.TimeSpan")
    myTable.Columns.Add(colTimeSpan)
 
    Dim colDateTime As DataColumn = New DataColumn("DateTimeCol")
    colDateTime.DataType = System.Type.GetType("System.DateTime")
    myTable.Columns.Add(colDateTime)
 
    Dim colDecimal As DataColumn = 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
    myTable.Rows.Add(myNewRow)
    MakeDataTable = myTable  
 End Function

[C#] 
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);
 
    // 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;
    myTable.Rows.Add(myNewRow);
    return myTable;  
 }

[C++] 
public:
DataTable* MakeDataTable(){
    
    DataTable* myTable;
    DataRow* myNewRow; 
    // Create a new DataTable.
    myTable = new DataTable(S"My Table");
 
    // Create DataColumn objects of data types.
    DataColumn* colString = new DataColumn(S"StringCol");
    colString->DataType = System::Type::GetType(S"System.String");
    myTable->Columns->Add(colString); 
 
    DataColumn* colInt32 = new DataColumn(S"Int32Col");
    colInt32->DataType = System::Type::GetType(S"System.Int32");
    myTable->Columns->Add(colInt32);
 
    DataColumn* colBoolean = new DataColumn(S"BooleanCol");
    colBoolean->DataType = System::Type::GetType(S"System.Boolean");
    myTable->Columns->Add(colBoolean);
 
    DataColumn* colTimeSpan = new DataColumn(S"TimeSpanCol");
    colTimeSpan->DataType = System::Type::GetType(S"System.TimeSpan");
    myTable->Columns->Add(colTimeSpan);
 
    DataColumn* colDateTime = new DataColumn(S"DateTimeCol");
    colDateTime->DataType = System::Type::GetType(S"System.DateTime");
    myTable->Columns->Add(colDateTime);
 
    DataColumn* colDecimal = new DataColumn(S"DecimalCol");
    colDecimal->DataType = System::Type::GetType(S"System.Decimal");
    myTable->Columns->Add(colDecimal);
 
    // Populate one row with values.
    myNewRow = myTable->NewRow();
 
    myNewRow->Item[S"StringCol"] = S"Item Name";
    myNewRow->Item[S"Int32Col"] = __box(2147483647);
    myNewRow->Item[S"BooleanCol"] = __box(true);
    myNewRow->Item[S"TimeSpanCol"] = __box(TimeSpan(10,22,10,15,100));
    myNewRow->Item[S"DateTimeCol"] = __box(System::DateTime::Today);
    myNewRow->Item[S"DecimalCol"] = __box(64.0021);
    myTable->Rows->Add(myNewRow);
    return myTable;  
 }

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework

See Also

DataColumn Class | DataColumn Members | System.Data Namespace | Type | GetType

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker