С # столбец вставки данных в позицию 0

105

Кто-нибудь знает, как лучше всего вставить столбец в таблицу данных в позиции 0?

Грант
источник
почему ты хочешь сделать это? Порядок столбцов на самом деле не имеет значения.
Стефан Штайнеггер,
1
иногда, если вы добавляете столбец в таблицу данных после получения данных из базы данных, вам может потребоваться установить его при попрошайничестве.
Wael Dalloul
1
Я вставляю данные в массовую вставку
Грант
9
@Stefan, я считаю, что порядок столбцов имеет значение при использовании Sql BulkCopy.
IAbstract

Ответы:

177

Вы можете использовать следующий код, чтобы добавить столбец в Datatable в позиции 0:

    DataColumn Col   = datatable.Columns.Add("Column Name", System.Type.GetType("System.Boolean"));
    Col.SetOrdinal(0);// to put the column in position 0;
Ваэль Даллул
источник
93

Просто чтобы улучшить ответ Ваэля и поместить его в одну строку:

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

ОБНОВЛЕНИЕ: обратите внимание, что это работает, когда вам не нужно больше ничего делать с DataColumn. Add () возвращает соответствующий столбец, SetOrdinal () ничего не возвращает.

CigarDoug
источник
15
одинарное заявление не всегда лучше. В этом случае мне нравится +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
Фархад
источник