c # datierbare Einfügespalte an Position 0

105

Kennt jemand den besten Weg, um eine Spalte in eine Datentabelle an Position 0 einzufügen?

Gewähren
quelle
Warum willst du das tun? Die Reihenfolge der Spalten sollte eigentlich nicht relevant sein.
Stefan Steinegger
1
Manchmal, wenn Sie der Datentabelle eine Spalte hinzufügen, nachdem Sie die Daten von db erhalten haben, müssen Sie sie möglicherweise beim Betteln festlegen.
Wael Dalloul
1
Ich pusche die Datentabelle in eine Masseneinfügung
Grant
9
@Stefan, ich glaube, die Reihenfolge der Spalten ist relevant, wenn Sql BulkCopy verwendet wird.
IAbstract

Antworten:

177

Mit dem folgenden Code können Sie Datatable in Position 0 eine Spalte hinzufügen:

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

Nur um Waels Antwort zu verbessern und sie in eine einzige Zeile zu setzen:

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

UPDATE: Beachten Sie, dass dies funktioniert, wenn Sie mit der DataColumn nichts anderes tun müssen. Add () gibt die betreffende Spalte zurück, SetOrdinal () gibt nichts zurück.

CigarDoug
quelle
15
Single Ligne Statement sind nicht immer besser. In diesem Fall gefällt es mir +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
quelle