Dela via


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.

Se även