Kolommen toevoegen aan een gegevenstabel
A DataTable bevat een verzameling DataColumn objecten waarnaar wordt verwezen door de eigenschap Kolommen van de tabel. Deze verzameling kolommen, samen met eventuele beperkingen, definieert het schema of de structuur van de tabel.
U maakt DataColumn-objecten in een tabel met behulp van de DataColumn-constructor of door de methode Toevoegen van de eigenschap Kolommen van de tabel aan te roepen. Dit is een DataColumnCollection. De methode Add accepteert optionele ColumnName-, DataType- en Expressie-argumenten en maakt een nieuwe DataColumn als lid van de verzameling. Het accepteert ook een bestaand DataColumn-object en voegt het toe aan de verzameling en retourneert een verwijzing naar de toegevoegde DataColumn indien aangevraagd. Omdat DataTable-objecten niet specifiek zijn voor een gegevensbron, worden .NET Framework-typen gebruikt bij het opgeven van het gegevenstype van een DataColumn.
In het volgende voorbeeld worden vier kolommen toegevoegd aan een gegevenstabel.
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));
In het voorbeeld ziet u dat de eigenschappen voor de kolom CustID zijn ingesteld om DBNull-waarden niet toe te staan en om waarden uniek te beperken. Als u echter de kolom CustID definieert als de primaire-sleutelkolom van de tabel, wordt de eigenschap AllowDBNull automatisch ingesteld op false en wordt de eigenschap Unique automatisch ingesteld op true. Zie Primaire sleutels definiƫren voor meer informatie.
Let op
Als een kolomnaam niet wordt opgegeven voor een kolom, krijgt de kolom een incrementele standaardnaam van kolomN, te beginnen met 'Kolom1', wanneer deze wordt toegevoegd aan de DataColumnCollection. U wordt aangeraden de naamconventie van KolomN te vermijden wanneer u een kolomnaam opgeeft, omdat de naam die u opgeeft, mogelijk conflicteert met een bestaande standaardkolomnaam in de DataColumnCollection. Als de opgegeven naam al bestaat, wordt er een uitzondering gegenereerd.
Als u XElement als de functie van een DataColumn in de DataType DataTableXML-serialisatie werkt, werkt het niet wanneer u gegevens leest. Als u bijvoorbeeld een XmlDocument met behulp van de DataTable.WriteXml
methode opschrijft, is er bij serialisatie naar XML een extra bovenliggend knooppunt in het XElement. Als u dit probleem wilt omzeilen, gebruikt u het SqlXml type in plaats van XElement. ReadXml
en WriteXml
correct werken met SqlXml.