Удалить 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)