2013-05-12 75 views
1

我試圖將多個文件中的數據導出到單個數據表。我能夠將數據添加到數據集,但它不提供我需要的輸出。我想這應該是我的循環中的錯誤,我嘗試了不同的方式,但未能得到正確的輸出。鑑於輸出低於我接受:將數據添加到多個文本文件中的DataTable列

enter image description here

這是輸出我需要:

enter image description here

請參閱我使用,請幫助我的編碼找到我走到哪裏錯誤。在此先感謝

OpenFileDialog thisDialog = new OpenFileDialog(); 
     thisDialog.Multiselect = true; 
     DataTable dt = new DataTable(); 

     if (thisDialog.ShowDialog() == DialogResult.OK) 
     { 
      foreach (string files in thisDialog.FileNames) 
      { 
       //each file generates two columns 
       DataColumn column1 = new DataColumn(); 
       dt.Columns.Add(column1); 
       DataColumn column2 = new DataColumn(); 
       dt.Columns.Add(column2); 
       using (System.IO.StreamReader file = new System.IO.StreamReader(files)) 
       { 
        string line; 
        while ((line = file.ReadLine()) != null) 
        { 
         if (line.Contains("DISKXFER")) 
         { 
          string dataLine = line.ToString(); 
          string[] split = dataLine.Split(','); 
          int result = split.Length; 
          DataRow row = dt.NewRow(); 
          dt.Rows.Add(split[2], split[3]); 
         } 
        } 
       } 
      } 
      dataGridView1.DataSource = dt; 
     } 
+0

你想讀什麼文件?這是文本文件?請提供示例輸入,因爲根據我的理解您的解決方案,您正在閱讀文本文件並使用','分割。 – jomsk1e 2013-05-12 15:25:09

+0

@JRC是的我想讀一個文本文件。我正在每個文本文件中逐行讀取包含單詞「DISKXFER」的行。該行是這樣的:「DISKXFER,T0001,0.5,0.0」。我正在拆分這一行,並將「0.5」和「0.0」分配給兩列,併爲每行添加新行。謝謝 – 2013-05-13 04:21:54

+0

什麼包含你的'分裂'? – WiiMaxx 2013-05-14 09:35:07

回答

0

要添加新行每個文件的DISKXFER線,僅填充了前兩列 - dt.rows.add做到這一點。

您應該在dr中填寫更多的列,然後將dr添加到表中。

+0

我先生成了兩列,然後將drs添加到表中。然後我收到列和行,如我所料。但行中的值不正確。它們是屬於最後一行的相同值。請幫助我解決這個問題。謝謝 – 2013-05-14 06:39:28