c # datatable wstaw kolumnę na pozycji 0

105

czy ktoś zna najlepszy sposób na wstawienie kolumny w datatable na pozycji 0?

Dotacja
źródło
Dlaczego chcesz to zrobić? W rzeczywistości kolejność kolumn nie powinna mieć znaczenia.
Stefan Steinegger
1
czasami, jeśli dodajesz kolumnę do datatable po pobraniu danych z bazy danych, może być konieczne ustawienie jej na początku.
Wael Dalloul
1
Im pusing datatable do zbiorczej wstawki
Grant
9
@Stefan, uważam, że kolejność kolumn jest istotna podczas korzystania z Sql BulkCopy.
IAbstract

Odpowiedzi:

177

Możesz użyć następującego kodu, aby dodać kolumnę do Datatable w pozycji 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
źródło
93

Aby poprawić odpowiedź Waela i umieścić ją w jednym wierszu:

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

UPDATE: Zauważ, że to działa, gdy nie musisz robić nic więcej z DataColumn. Add () zwraca daną kolumnę, SetOrdinal () nic nie zwraca.

CigarDoug
źródło
15
pojedyncze stwierdzenie ligne nie zawsze jest lepsze. W tym przypadku mi się podoba +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
źródło