c#データテーブルは位置0に列を挿入します


105

誰かがデータテーブルの位置0に列を挿入する最良の方法を知っていますか?


なぜこれをしたいのですか?列の順序は実際には関係ありません。
Stefan Steinegger、2009

1
dbからデータを取得した後にデータテーブルに列を追加している場合は、すぐに設定する必要がある場合があります。
ワエルダロール2009

1
データテーブルを一括挿入に混乱させる
Grant

9
@ Stefan、Sql BulkCopyを使用する場合、列の順序は重要だと思います。
IAbstract

回答:


177

次のコードを使用して、位置0でDatatableに列を追加できます。

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

93

Waelの答えを改善して1行に入れるためだけに:

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

更新:これは、DataColumnで他に何もする必要がない場合に機能することに注意してください。Add()は問題の列を返し、SetOrdinal()は何も返しません。


15
単一のligneステートメントは常に良いとは限りません。この場合、私はそれを+1します
レミ

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.