Freigeben über


DataColumn.DataType-Eigenschaft

Ruft den Typ der in der Spalte gespeicherten Daten ab oder legt diesen fest.

Namespace: System.Data
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public Property DataType As Type
'Usage
Dim instance As DataColumn
Dim value As Type

value = instance.DataType

instance.DataType = value
public Type DataType { get; set; }
public:
property Type^ DataType {
    Type^ get ();
    void set (Type^ value);
}
/** @property */
public Type get_DataType ()

/** @property */
public void set_DataType (Type value)
public function get DataType () : Type

public function set DataType (value : Type)

Eigenschaftenwert

Ein Type, der den Datentyp der Spalte darstellt.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentException

In der Spalte sind bereits Daten gespeichert.

– oder –

AutoIncrement ist true, der Wert ist jedoch auf einen Typ festgelegt, der von AutoIncrement nicht unterstützt wird.

Hinweise

Das Festlegen des DataType-Werts ist für die fehlerfreie Erstellung und Aktualisierung von Daten in einer Datenquelle unerlässlich.

Die DataType-Eigenschaft unterstützt die folgenden .NET Framework-Basisdatentypen:

sowie den folgenden Arraytyp:

  • Byte[]

Eine Ausnahme wird generiert, wenn diese Eigenschaft geändert wird, nachdem mit dem Speichern von Daten in der Spalte begonnen wurde.

Wenn AutoIncrement vor dem Festlegen der DataType-Eigenschaft auf true festgelegt wird und Sie versuchen, einen Typ festzulegen, der kein Ganzzahltyp ist, wird eine Ausnahme ausgelöst.

Hinweis

Für eine Spalte vom Datentyp Byte[] ist in bestimmten Fällen eine besondere Behandlung erforderlich, da es sich bei diesem im Gegensatz zu den .NET Framework-Basisdatentypen um einen Verweisdatentypen handelt. Wenn eine Spalte vom Datentyp Byte[] als PrimaryKey, als Sort oder als RowFilter-Schlüssel für eine DataView verwendet wird, muss der Wert der Byte[]-Spalte im Rahmen aller Änderungen am Spaltenwert einem eigens instanziierten Byte[]-Objekt zugewiesen werden. Die Zuweisung ist erforderlich, damit die Aktualisierung der für Sortier-, Filter- und Primärschlüsselvorgänge verwendeten internen Indizes ausgelöst wird. Dies wird im folgenden Beispiel veranschaulicht:

byte[] columnValue = (byte[])myDataTable.Rows[0][0];
byte[] newValue = (byte[])columnValue.Clone();
newValue[1] = 2;
myDataTable.Rows[0][0] = newValue;

Hinweis

Obwohl es möglich ist, eine Spalte als Datentypen zu definieren, der kein .NET Framework-Basisdatentyp und nicht Byte[] ist, wird eine solche Spalte als benutzerdefinierter Typ behandelt, und ihre Verwendung unterliegt den folgenden Einschränkungen. (Weitere Informationen über benutzerdefinierte Typen finden Sie unter Erstellen und Verwenden von benutzerdefinierten Typen.)

Beispiel

Im folgenden Beispiel werden einer DataTable Spalten mit verschiedenen Datentypen hinzugefügt, und der Tabelle wird anschließend eine Zeile hinzugefügt.

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

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

DataColumn-Klasse
DataColumn-Member
System.Data-Namespace
Type
GetType