Udostępnij za pośrednictwem


Dodawanie kolumn do elementu DataTable

Obiekt DataTable zawiera kolekcję DataColumn obiektów, do których odwołuje się właściwość Columns tabeli. Ta kolekcja kolumn wraz z wszelkimi ograniczeniami definiuje schemat lub strukturę tabeli.

Obiekty DataColumn można utworzyć w tabeli przy użyciu konstruktora DataColumn lub wywołując metodę Add właściwości Columns tabeli, czyli DataColumnCollection. Metoda Add akceptuje opcjonalne argumenty ColumnName, DataType i Expression oraz tworzy nową kolumnę DataColumn jako element członkowski kolekcji. Akceptuje również istniejący obiekt DataColumn i dodaje go do kolekcji oraz zwraca odwołanie do dodanego obiektu DataColumn , jeśli jest to wymagane. Ponieważ obiekty DataTable nie są specyficzne dla żadnego źródła danych, typy programu .NET Framework są używane podczas określania typu danych kolumny DataColumn.

Poniższy przykład dodaje cztery kolumny do tabeli 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));  

W tym przykładzie zwróć uwagę, że właściwości kolumny CustID są ustawione tak, aby nie zezwalały na wartości DBNull i ograniczały wartości jako unikatowe. Jeśli jednak zdefiniujesz kolumnę CustID jako kolumnę klucza podstawowego tabeli, właściwość AllowDBNull zostanie automatycznie ustawiona na wartość false , a właściwość Unique zostanie automatycznie ustawiona na true. Aby uzyskać więcej informacji, zobacz Definiowanie kluczy podstawowych.

Uwaga

Jeśli nazwa kolumny nie jest podana dla kolumny, kolumna otrzymuje przyrostową domyślną nazwę kolumnyN, zaczynając od kolumny "Column1", po dodaniu jej do kolekcji DataColumnCollection. Zalecamy unikanie konwencji nazewnictwa kolumnyN podczas podawania nazwy kolumny, ponieważ podana nazwa może powodować konflikt z istniejącą domyślną nazwą kolumny w kolekcji DataColumnCollection. Jeśli podana nazwa już istnieje, zostanie zgłoszony wyjątek.

Jeśli używasz XElement elementu jako DataType DataColumn elementu w DataTableprogramie , serializacja XML nie będzie działać podczas odczytywania danych. Jeśli na przykład zapiszesz XmlDocument element przy użyciu DataTable.WriteXml metody , po serializacji w pliku XML istnieje dodatkowy węzeł nadrzędny w pliku XElement. Aby obejść ten problem, użyj SqlXml typu zamiast XElement. ReadXml i WriteXml działa poprawnie z SqlXml.

Zobacz też