c # стовпчик вставних даних у позиції 0


105

хтось знає найкращий спосіб вставити стовпчик у таблицю даних у позиції 0?


Чому ти хочеш це робити? Порядок стовпців насправді не повинен відповідати.
Стефан Штейнеггер

1
Іноді, якщо ви додаєте стовпець до таблиці даних після отримання даних з db, можливо, вам знадобиться встановити його під час випробовування.
Ваель Даллул

1
я заштовхую дану таблицю в об'ємну вставку
Грант

9
@Stefan, я вважаю, що порядок стовпців є релевантним при використанні Sql BulkCopy.
IАнотація

Відповіді:


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
Один заява ligne не завжди краща. У цьому випадку мені подобається +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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.