Sdílet prostřednictvím


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

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

Objekty DataColumn v tabulce vytvoříte pomocí DataColumn konstruktoru, nebo voláním metody Add vlastnosti Columns tabulky, což je DataColumnCollection. Metoda Add přijímá volitelné argumenty ColumnName, DataType a Expression a vytvoří nový DataColumn, který se stane členem kolekce. Přijme také existující DataColumn objekt a přidá ho do kolekce a v případě požadavku vrátí odkaz na přidaný DataColumn objekt. Vzhledem k tomu, že DataTable objekty nejsou specifické pro žádný zdroj dat, jsou typy rozhraní .NET Framework použity při zadávání datového typu 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 tomto příkladu si všimněte, že vlastnosti sloupce CustID jsou nastaveny tak, aby nepovolovaly DBNull hodnoty a aby hodnoty 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 hodnotu 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 načítání dat. 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 pracují správně s SqlXml.

Viz také