c # columna de inserción de tabla de datos en la posición 0

105

¿Alguien sabe la mejor manera de insertar una columna en una tabla de datos en la posición 0?

Conceder
fuente
¿Por qué quieres hacer esto? El orden de las columnas no debería ser relevante.
Stefan Steinegger
1
a veces, si está agregando una columna a la tabla de datos después de obtener los datos de db, es posible que deba configurarla al principio.
Wael Dalloul
1
im pusing la tabla de datos en una inserción masiva
Grant
9
@Stefan, creo que el orden de las columnas es relevante cuando se usa Sql BulkCopy.
IAbstract

Respuestas:

177

Puede usar el siguiente código para agregar una columna a Datatable en la posición 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
fuente
93

Solo para mejorar la respuesta de Wael y ponerla en una sola línea:

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

ACTUALIZACIÓN: tenga en cuenta que esto funciona cuando no necesita hacer nada más con DataColumn. Add () devuelve la columna en cuestión, SetOrdinal () no devuelve nada.

CigarDoug
fuente
15
declaración de ligne única no siempre es mejor. En este caso me gusta +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
fuente