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