2015-02-09 65 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(); 
相关问题