2013-08-30 3 views
0

У меня есть DataSet, который читает данные xml и имеет почти 20 столбцов, Мне нужно 5 столбцов из DataSet. Я пробовал на своем уровне, но не смог получить DataTable с конкретными столбцами, которые мне нужны. некоторых коды, которые я попытался это:Копировать конкретные столбцы данных в Datatable

DataTable dt = new DataTable(); //dt is blank DataTable 
DataSet ds = new DataSet(); //ds is existing DataSet which has single table in it 
dt.Columns[0]=dst4.Tables[0].Columns[0];    
dt.Columns.Add(dst4.Tables[0].Columns[0]); 
ds.Tables.Add(dt) 
dst4.Tables.Columns.Add(dt); 
+0

Какие столбцы вы хотите? Вы говорите 5, но который, ваш код не показывает его. –

ответ

0

говорит, что вы должны скопировать столбцы "имя_столбца1", "имя_столбца2", "ColumnName3", "ColumnName4", "ColumnName5" к новому DataTable

DataTable source = dst4.Tables[0]; 
DataTable dt = source.DefaultView.ToTable(false, "ColumnName1", "ColumnName2", "ColumnName3", "ColumnName4", "ColumnName5"); 
0

Вы можете клонировать таблицу, которая создает пустую таблицу с одинаковыми столбцами, тогда вы можете удалить избыточные столбцы. Вот пример с именованными столбцами, вы также можете использовать индексы:

DataTable dt = ds.Tables[0].Clone(); 
var colToTake = new[] { "Col1", "Col3", "Col7", "Col15", "Col19" }; 
var colsToRemove = dt.Columns.Cast<DataColumn>() 
    .Where(c => !colToTake.Contains(c.ColumnName)); 
foreach (DataColumn colToRemove in colsToRemove) 
    dt.Columns.Remove(colToRemove); 
+0

Я попробовал другой способ выполнить задачу путем удаления ненужных столбцов из набора данных. ds.Tables [0] .Columns.Remove ("column1"); – codemirror

+0

@codemirror: Вы меня смущаете. Почему вы удаляете столбцы из исходных таблиц вместо пустой клонированной таблицы? Это не то, что вы упомянули в своем вопросе. И мне тоже не хватает, если он работает. –

+0

Извините, позвольте мне сказать, я должен показать набор данных на datagridview, это единственное использование набора данных, поэтому я удалил конкретные нежелательные столбцы из набора данных и теперь могу привязать его к datagridview. – codemirror

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