c # tabela de dados inserir coluna na posição 0

105

alguém sabe a melhor maneira de inserir uma coluna em uma tabela de dados na posição 0?

Conceder
fonte
Por que você quer fazer isso? A ordem das colunas não deve ser relevante.
Stefan Steinegger
1
às vezes, se você estiver adicionando uma coluna à tabela de dados após obter os dados do banco de dados, pode ser necessário configurá-lo no início.
Wael Dalloul
1
im pusando a tabela de dados em uma inserção em massa
Concessão de
9
@Stefan, acredito que a ordem das colunas é relevante ao usar Sql BulkCopy.
IAbstract

Respostas:

177

Você pode usar o seguinte código para adicionar coluna a Datatable na posição 0:

    DataColumn Col   = datatable.Columns.Add("Column Name", System.Type.GetType("System.Boolean"));
    Col.SetOrdinal(0);// to put the column in position 0;
Wael Dalloul
fonte
93

Apenas para melhorar a resposta de Wael e colocá-la em uma única linha:

dt.Columns.Add("Better", typeof(Boolean)).SetOrdinal(0);

ATUALIZAÇÃO: Observe que isso funciona quando você não precisa fazer mais nada com o DataColumn. Add () retorna a coluna em questão, SetOrdinal () não retorna nada.

CigarDoug
fonte
15
declaração de linha única nem sempre é melhor. Neste caso, eu gosto +1
Rémi
2
    //Example to define how to do :

    DataTable dt = new DataTable();   

    dt.Columns.Add("ID");
    dt.Columns.Add("FirstName");
    dt.Columns.Add("LastName");
    dt.Columns.Add("Address");
    dt.Columns.Add("City");
           //  The table structure is:
            //ID    FirstName   LastName    Address     City

       //Now we want to add a PhoneNo column after the LastName column. For this we use the                               
             //SetOrdinal function, as iin:
        dt.Columns.Add("PhoneNo").SetOrdinal(3);

            //3 is the position number and positions start from 0.`enter code here`

               //Now the table structure will be:
              // ID      FirstName   LastName    LastName   PhoneNo     Address     City
Farhad
fonte