DataColumn.DataType プロパティ

列に格納されているデータの型を取得または設定します。

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);

プロパティ値

列のデータ型を表す Type オブジェクト。

例外

例外の種類 条件
ArgumentException この列には既にデータが格納されています。
ArgumentException AutoIncrementtrue に設定されていますが、 AutoIncrement がサポートしない型に値が設定されています。

解説

DataType 値の設定は、データ ソース内のデータを正しく作成および更新できるようにするために重要です。

DataType プロパティは、次に示す基本 .NET Framework データ型をサポートします。

列へのデータの格納が開始された後でこのプロパティを変更すると、例外が生成されます。

DataType プロパティを設定する前に AutoIncrementtrue に設定し、整数型以外の型に設定しようとすると、例外が生成されます。

使用例

[Visual Basic, C#, C++] データ型が異なる複数の列を DataTable に追加し、そのテーブルに 1 行を追加する例を次に示します。

 
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] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

DataColumn クラス | DataColumn メンバ | System.Data 名前空間 | Type | GetType