2016-02-08 2 views
-4

У меня есть DataSet ds, который содержит 10 DataTables, каждый из которых имеет только один столбец. Как сделать DataTable, который содержит все столбцы от DataSet ds?Как получить DataTable из DataSet?


public static DataSet ReadXmlUsingBufferedStream(string pathOfXMLFile) 
{ 
    DataSet ds = new DataSet(); 
    ds.EnforceConstraints = false; 
    if (File.Exists(pathOfXMLFile)) 
    { 
     using (FileStream filestream = File.OpenRead(pathOfXMLFile)) 
     { 
     BufferedStream buffered = new BufferedStream(filestream); 
     ds.ReadXml(buffered); 
     } 
    } 
    ds.EnforceConstraints = true; 
    return ds; 
} 
+0

Как вы заполняете 'DataSet'? покажите нам, что код. – Bharadwaj

+1

привет @pranay, вы хотите, чтобы вы получили новую таблицу данных, которая будет иметь по 10 столбцов каждый из ваших десятисегментных таблиц данных? и делает ли это все таблицы данных одинаковым числом строк? –

+0

@PushkarPhule привет, да. –

ответ

2

Здесь я просто marged все datatabes доступные в dataset. Если вы установите какое-либо условие, вы добавите определенные столбцы определенной таблицы, чем это необходимо улучшить.

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      //Building a dataset having 10 different datatable which contains 1 column each 
      DataSet ds = new DataSet();    
      for (int i = 0; i <= 9; i++) 
      { 
       DataTable dt = new DataTable(); 
       dt.Columns.Add("dt" + i + "_column1", typeof(string)); 
       dt.AcceptChanges(); 
       ds.Tables.Add(dt); 

      } 
      ds.AcceptChanges(); 

      //Here finally building a datatable which consists all columns of each and every tables in dataset 
      DataTable dtFinal = new DataTable(); 
      foreach (DataTable tmp in ds.Tables) 
      { 
       dtFinal.Merge(tmp); 
      } 
     } 
    } 
}