С # столбец вставки данных в позицию 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 () ничего не возвращает.


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.