Удалить DataColumn из DataTable с данными

У меня есть данные с данными. Я позвонил в свою базу данных postgres и получил DataTable.

// get the new data from postgres
   var dataTable = pg.GetDataTable("SELECT * FROM " + '"'+table+'"');

Теперь мне нужно удалить конкретную колонку. Предположим, что есть 5 столбцов с данными.

ID     |   Name   | Address | Mobile | Home
_______________________________________________
    1  |  A       |AAA      | 123    | 345
    2  |  B       |BBB      | 234    | 456
    3  |  C       |CCC      | 345    | 567

Поэтому мне нужно удалить "Home " DataColumn и воссоздать этот DataTable следующим образом

  ID   |   Name   | Address | Mobile 
____________________________________
    1  |  A       |AAA      | 123    
    2  |  B       |BBB      | 234    
    3  |  C       |CCC      | 345    

Как я могу это сделать?

Ценю ваши комментарии.

Спасибо

3 ответа

Решение

Просто укажите нужные столбцы, а не выделите ненужные столбцы и удалите их впоследствии:

SELECT "Id", "Name", "Address", "Mobile"

С помощью SELECT * это плохие манеры, потому что это делает ваш контракт с базой данных нестабильным - при изменении конфигурации колонки вы получите непредсказуемый результат.

Вам просто нужно использовать метод DataTable.Columns.Remove(string name):

dataTable.Columns.Remove("Home");

Тогда таблица больше не содержит этот столбец, и данные всех строк в этом столбце отбрасываются. Однако, опустите этот столбец в первую очередь и перечислите желаемые столбцы:

var dataTable = pg.GetDataTable("SELECT ID, Name, Address, Mobile FROM " + '"'+ table +'"');

Рассмотреть возможность использованияdataTable.Columns.Remove("ColumnName")или жеdataTable.Columns.RemoveAt(ColumnNumber)

Другие вопросы по тегам