2015-02-09 85 views
1

我正在使用StreamWriter在dataGridView中的所有現有單元上編寫所有值,該編寫器工作正常。但是,我的讀者沒有做得很好。從文本文件中加載dataGridView中的單元格值C#

這是我寫的代碼(沒有問題):

StreamWriter writer = new StreamWriter(valuePath); 
     foreach (DataGridViewRow row in dataGridView1.Rows) 
     { 
      foreach (DataGridViewCell cell in row.Cells) 
      { 
       writer.WriteLine(cell.Value); 
      } 
     } 
     writer.Close(); 

這是我的讀者代碼:

StreamReader sr = new StreamReader(valuePath); 
     foreach (DataGridViewRow row in dataGridView1.Rows) 
     { 
      foreach (DataGridViewCell cell in row.Cells) 
      { 
       cell.Value = sr.ReadLine(); 
      } 
     } 
     sr.Close(); 

輸出: 週一 週二 週三

此代碼是從閱讀txt文件到我的dataGridView的「現有的單元格」的每一行,因此應用程序打開時,只有一行。這就是爲什麼我的讀者工作不好。有人可以幫我解決這個問題嗎?

+0

'這就是爲什麼我的讀者不工作good'?更具體的是它讀取文本文件的單元格或不?如果可能的話,給我們**電流輸出**和**所需輸出** – chouaib 2015-02-09 01:58:31

+0

你的意思是,如果你打開應用程序時定義了多行和多列,那麼閱讀器代碼工作正常? – kennyzx 2015-02-09 02:02:09

+0

是的,它正在將文本文件讀取到單元格。文本文件中的輸出是所需的,問題在於我正在使用的閱讀方法 – ChrisCreateBoss 2015-02-09 02:03:14

回答

1

我建議你寫這種格式的文本文件:

小區1,小區2,...

小區1,小區2,...

小區1,小區2,...

...

要做到這一點,你writer代碼更改爲:

StreamWriter writer = new StreamWriter(valuePath); 
string line; 
foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    line = ""; 
    foreach (DataGridViewCell cell in row.Cells) 
    { 
     line += cell.Value.ToString(); 
    } 
    writer.WriteLine(line); 
} 
writer.Close(); 

reader代碼應改爲相應地:

StreamReader sr = new StreamReader(valuePath); 
string line; 
string[] values; 
int n=0; 

while(!sr.EndOfStream) 
{ 
    line = sr.ReadLine(); 
    values = line.Split(','); 

    for(int m=0; m<values.Length; m++) 
    { 
     dataGridView1[m, n].Value = values[m]; 
    } 
    n++; 
} 
sr.Close(); 
相關問題