Partilhar via


Adicionando colunas a uma DataTable

A DataTable contém uma coleção de objetos referenciados DataColumn pela propriedade Columns da tabela. Esta coleção de colunas, juntamente com quaisquer restrições, define o esquema ou a estrutura da tabela.

Você cria objetos DataColumn dentro de uma tabela usando o construtor DataColumn ou chamando o método Add da propriedade Columns da tabela, que é um DataColumnCollectionarquivo . O método Add aceita argumentos opcionais ColumnName, DataType e Expression e cria um novo DataColumn como membro da coleção. Ele também aceita um objeto DataColumn existente e o adiciona à coleção, e retorna uma referência ao DataColumn adicionado, se solicitado. Como os objetos DataTable não são específicos de nenhuma fonte de dados, os tipos do .NET Framework são usados ao especificar o tipo de dados de um DataColumn.

O exemplo a seguir adiciona quatro colunas a um 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));  

No exemplo, observe que as propriedades da coluna CustID estão definidas para não permitir valores DBNull e restringir valores a serem exclusivos. No entanto, se você definir a coluna CustID como a coluna de chave primária da tabela, a propriedade AllowDBNull será automaticamente definida como false e a propriedade Unique será automaticamente definida como true. Para obter mais informações, consulte Definindo chaves primárias.

Atenção

Se um nome de coluna não for fornecido para uma coluna, a coluna receberá um nome padrão incremental de ColunaN, começando com "Column1", quando for adicionada ao DataColumnCollection. Recomendamos que você evite a convenção de nomenclatura de "ColunaN" ao fornecer um nome de coluna, porque o nome fornecido pode entrar em conflito com um nome de coluna padrão existente no DataColumnCollection. Se o nome fornecido já existir, uma exceção será lançada.

Se você estiver usando XElement como o DataType de a DataColumn no , a DataTableserialização XML não funcionará quando você ler dados. Por exemplo, se você escrever um XmlDocument usando o método, após a DataTable.WriteXml serialização para XML, haverá um nó pai adicional no XElement. Para contornar esse problema, use o SqlXml tipo em vez de XElement. ReadXml e WriteXml trabalhar corretamente com SqlXmlo .

Consulte também