c # kolom sisipkan data pada posisi 0

105

apakah ada yang tahu cara terbaik untuk menyisipkan kolom di datatable di posisi 0?

Hibah
sumber
Mengapa Anda ingin melakukan ini? Urutan kolom seharusnya tidak relevan.
Stefan Steinegger
1
terkadang jika Anda menambahkan kolom ke datatable setelah mendapatkan data dari db, Anda mungkin perlu mengaturnya saat mengemis.
Wael Dalloul
1
saya pusingkan data tersebut menjadi penyisipan massal
Berikan
9
@ Stefan, saya yakin urutan kolom relevan saat menggunakan Sql BulkCopy.
IAbstract

Jawaban:

177

Anda dapat menggunakan kode berikut untuk menambahkan kolom ke Datatable di postion 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
sumber
93

Hanya untuk memperbaiki jawaban Wael dan meletakkannya di satu baris:

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

UPDATE: Perhatikan bahwa ini berfungsi ketika Anda tidak perlu melakukan apa pun dengan DataColumn. Add () mengembalikan kolom yang dimaksud, SetOrdinal () tidak mengembalikan apa-apa.

CigarDoug
sumber
15
Pernyataan single ligne tidak selalu lebih baik. Dalam hal ini saya menyukainya +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
sumber