Lägga till kolumner i en datatabell
A DataTable innehåller en samling DataColumn objekt som refereras till av tabellens kolumnegenskap. Den här samlingen med kolumner, tillsammans med eventuella begränsningar, definierar tabellens schema eller struktur.
Du skapar DataColumn-objekt i en tabell med hjälp av Konstruktorn DataColumn eller genom att anropa metoden Lägg till för egenskapen Kolumner i tabellen, som är en DataColumnCollection. Metoden Lägg till accepterar valfria argument för ColumnName, DataType och Expression och skapar en ny DataColumn som medlem i samlingen. Det accepterar också ett befintligt DataColumn-objekt och lägger till det i samlingen och returnerar en referens till det tillagda DataColumn om det begärs. Eftersom DataTable-objekt inte är specifika för någon datakälla används .NET Framework-typer när du anger datatypen för en DataColumn.
I följande exempel läggs fyra kolumner till i en DataTable.
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));
Observera i exemplet att egenskaperna för kolumnen CustID är inställda på att inte tillåta DBNull-värden och att begränsa att värden är unika. Men om du definierar kolumnen CustID som den primära nyckelkolumnen i tabellen anges egenskapen AllowDBNull automatiskt till false och egenskapen Unique ställs automatiskt in på true. Mer information finns i Definiera primära nycklar.
Varning
Om ett kolumnnamn inte anges för en kolumn får kolumnen ett inkrementellt standardnamn för KolumnN, med början i "Column1", när den läggs till i DataColumnCollection. Vi rekommenderar att du undviker namngivningskonventionen för "KolumnN" när du anger ett kolumnnamn, eftersom namnet du anger kan vara i konflikt med ett befintligt standardkolumnnamn i DataColumnCollection. Om det angivna namnet redan finns genereras ett undantag.
Om du använder XElement som DataType en DataColumn i DataTable, fungerar XML-serialiseringen inte när du läser i data. Om du till exempel skriver ut en XmlDocument med hjälp DataTable.WriteXml
av metoden finns det vid serialisering till XML en ytterligare överordnad XElementnod i . Du kan undvika det här problemet genom att SqlXml använda typen i stället för XElement. ReadXml
och WriteXml
fungerar korrekt med SqlXml.