Freigeben über


Hinzufügen von Spalten zu einer DataTable

A DataTable enthält eine Auflistung von DataColumn Objekten, auf die von der Columns Eigenschaft der Tabelle verwiesen wird. Diese Sammlung von Spalten sowie alle Einschränkungen definiert das Schema oder die Struktur der Tabelle.

Sie erstellen DataColumn-Objekte in einer Tabelle mithilfe des DataColumn-Konstruktors oder durch Aufrufen der Add-Methode der Columns-Eigenschaft der Tabelle, die ein DataColumnCollection ist. Die Add Methode akzeptiert optionale ColumnName, DataType und Expression Argumente und erstellt ein neues DataColumn als Element der Auflistung. Es akzeptiert auch ein vorhandenes DataColumn Objekt und fügt es der Auflistung hinzu und gibt einen Verweis auf das hinzugefügte DataColumn , falls angefordert. Da DataTable Objekte für keine Datenquelle spezifisch sind, werden .NET Framework-Typen beim Angeben des Datentyps eines DataColumn verwendet.

Im folgenden Beispiel werden einer DataTable vier Spalten hinzugefügt.

Dim workTable As DataTable = New DataTable("Customers")

Dim workCol As DataColumn = workTable.Columns.Add( _
    "CustID", Type.GetType("System.Int32"))
workCol.AllowDBNull = false
workCol.Unique = true

workTable.Columns.Add("CustLName", Type.GetType("System.String"))
workTable.Columns.Add("CustFName", Type.GetType("System.String"))
workTable.Columns.Add("Purchases", Type.GetType("System.Double"))
DataTable workTable = new DataTable("Customers");

DataColumn workCol = workTable.Columns.Add("CustID", typeof(Int32));
workCol.AllowDBNull = false;
workCol.Unique = true;

workTable.Columns.Add("CustLName", typeof(String));
workTable.Columns.Add("CustFName", typeof(String));
workTable.Columns.Add("Purchases", typeof(Double));

Beachten Sie im Beispiel, dass die Eigenschaften für die CustID Spalte so festgelegt sind, dass DBNull Werte nicht zugelassen sind und dass Werte eindeutig sein müssen. Wenn Sie die CustID-Spalte jedoch als Primärschlüsselspalte der Tabelle definieren, wird die AllowDBNull-Eigenschaft automatisch auf false gesetzt und die Unique-Eigenschaft wird automatisch auf true gesetzt. Weitere Informationen finden Sie unter Definieren von Primärschlüsseln.

Vorsicht

Wenn kein Spaltenname für eine Spalte angegeben wird, erhält die Spalte einen inkrementellen Standardnamen von SpalteN, beginnend mit "Spalte1", wenn sie der DataColumnCollection hinzugefügt wird. Es wird empfohlen, die Benennungskonvention von "ColumnN" beim Angeben eines Spaltennamens zu vermeiden, da der angegebene Name möglicherweise mit einem vorhandenen Standardspaltennamen in der DataColumnCollection in Konflikt steht. Wenn der angegebene Name bereits vorhanden ist, wird eine Ausnahme ausgelöst.

Wenn Sie XElement als DataType von DataColumn im DataTable verwenden, wird die XML-Serialisierung nicht funktionieren, wenn Sie Daten einlesen. Wenn Sie z. B. eine XmlDocument mithilfe der DataTable.WriteXml-Methode schreiben, gibt es bei der Serialisierung nach XML einen zusätzlichen übergeordneten Knoten in der XElement. Um dieses Problem zu umgehen, verwenden Sie den SqlXml Typ anstelle von XElement. ReadXml und WriteXml arbeiten ordnungsgemäß mit SqlXml.

Siehe auch