2015-03-19 6 views
0

У меня есть Datatable with Data. Я позвонил в свою базу данных postgres и получил DataTable.Удалить DataColumn из 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  

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

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

Благодаря

+0

вы на самом деле нужен столбец Главного между запросом и когда вы хотите, чтобы столбец удаления ли? Если нет, почему бы просто не выбрать столбцы в инструкции SELECT, а не все со звездочкой – horHAY

+0

Спасибо за ваш комментарий. Это действительно маленький кусочек моего кода. Поэтому мне нужно удалить конкретный столбец. это не только для одной таблицы. :) –

+0

Не можете ли вы просто пропустить его? Кажется, что вашему столу уже требуется специальное лечение, поэтому, возможно, общий выбор sql не подходит. –

ответ

1

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

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

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

1

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

dataTable.Columns.Remove("Home"); 

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

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

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

+0

Это не сильно отличается от других ответов, которые имеют дополнительное положительное объяснение кода. –

 Смежные вопросы

  • Нет связанных вопросов^_^