2014-12-03 4 views
1

У меня есть одна таблица данных с 15 столбцами и многими строками, и мне нужно создать новую таблицу данных, в которой есть только три столбца из 15 столбцов и копия все соответствующие данные из исходной таблицы данных во вторую таблицу данных.Как получить один datatable с двумя столбцами из другого типа данных со многими столбцами в C#

Я искал ответ, и ближайший я нашел следующий URL. Но моя проблема с использованием решения SO заключается в том, что мне нужно удалить 12 столбцов, чтобы получить мои 3 нужных столбца, так как решение SO удаляет столбцы.

Есть ли более простой способ сделать это? Любой намек был бы оценен. Я не знаю LINQ (возможно, это вопрос LINQ, я не знаю), и я являюсь промежуточным программистом на C#. Спасибо за вашу помощь.

SO Solution That is close to what I need

Отредактировано Позже: This Solved My Problem Со многими благодаря Schmelter для @ Тим его ответ, после того, как я опубликовал этот вопрос, я увидел, что в конце дня, что мне нужно сделать, это скопировать финальный стол данных (с тремя столбцами) в dataGridView (который уже имеет три столбца). Поэтому мой вопрос заключается в том, как скопировать DataTable с 15 столбцами в DataGridView с тремя столбцами. И я нашел свой ответ, посмотрев комментарий Номи Али во второй ссылке SO на моем посту. Я просто устанавливаю AutoGenerateColumn в False в DataGridView. Это решило мою проблему. Однако я попробую ответить @Tim Schmelter, и если это сработает, я буду отмечать это как ответ.

ответ

1

Может быть, вы могли бы определить белый список и использовать LINQ:

string[] wantedColumns = { "Column1", "Column2", "Column3" }; // for example 
DataTable secondTable = firstTable.Copy(); 
var removeColumns = secondTable.Columns.Cast<DataColumn>() 
    .Where(col => !wantedColumns.Contains(col.ColumnName, StringComparer.InvariantCultureIgnoreCase)) 
    .ToList(); 
removeColumns.ForEach(c => secondTable.Columns.Remove(c)); 
+0

Есть 12 столбцов, которые я должен удалить. Я даже не знаю названия всех 15 столбцов. – user1298925

+0

@ user1298925, если вы не знаете, какие столбцы удалить, как вы на самом деле собираетесь их удалить? Вы знаете индекс столбца? – Habib

+0

Спасибо за ваш ответ – user1298925

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