Sdílet prostřednictvím


Přidání sloupců do datové tabulky

A DataTable obsahuje kolekci DataColumn objektů odkazovaných vlastností Columns tabulky. Tato kolekce sloupců spolu s případnými omezeními definuje schéma tabulky nebo strukturu.

DataColumn objekty v tabulce pomocí DataColumn konstruktoru nebo voláním Add metoda Columns tabulky, což je DataColumnCollection. Add metoda přijímá volitelné ColumnName, DataType a Expression argumenty a vytvoří nový DataColumn jako člen kolekce. Také přijímá existující DataColumn objekt a přidá ho do kolekce a vrátí odkaz na přidaný DataColumn v případě požadavku. Vzhledem k tomu, že objekty DataTable nejsou specifické pro žádný zdroj dat, používají se typy rozhraní .NET Framework při zadávání datového typu objektu DataColumn.

Následující příklad přidá do tabulky DataTable čtyři sloupce.

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));  

V příkladu si všimněte, že vlastnosti pro sloupec CustID jsou nastaveny tak, aby nepovolovaly hodnoty DBNull a aby hodnoty omezení byly jedinečné. Pokud však definujete sloupec CustID jako sloupec primárního klíče tabulky, vlastnost AllowDBNull se automaticky nastaví na false a vlastnost Unique se automaticky nastaví na true. Další informace naleznete v tématu Definování primárních klíčů.

Upozornění

Pokud pro sloupec není zadaný název sloupce, zobrazí se mu přírůstkový výchozí název sloupceN počínaje sloupcem "Column1", když je přidán do objektu DataColumnCollection. Doporučujeme, abyste se při zadávání názvu sloupce vyhnuli konvenci pojmenování sloupceN, protože zadaný název může být v konfliktu s existujícím výchozím názvem sloupce v objektu DataColumnCollection. Pokud zadaný název již existuje, vyvolá se výjimka.

Pokud používáte XElement jako DataType v DataColumnDataTablesouboru , serializace XML nebude fungovat při čtení v datech. Pokud například zapíšete XmlDocument pomocí DataTable.WriteXml metody, při serializaci do XML existuje další nadřazený uzel v objektu XElement. Chcete-li tento problém vyřešit, použijte SqlXml typ místo XElement. ReadXml a WriteXml pracovat správně s SqlXml.

Viz také