我在项目上工作,在那里我必须读取一个.csv文件,其中每行的csv文件包含14个字段。然而,我只能设法打印第一行与listview。我只是不能让它打印多行,我不知道为什么。
这是我代码:
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
var path = @"C:\Universitet\Privat\testfil.csv";
using (TextFieldParser csvParser = new TextFieldParser(path))
{
csvParser.CommentTokens = new string[] { "#" };
csvParser.SetDelimiters(new string[] { ";"});
csvParser.HasFieldsEnclosedInQuotes = true;
//skipper kolloner
csvParser.ReadLine();
int i = 0;
ListViewItem rows = new ListViewItem();
while (!csvParser.EndOfData) {
//læser linje og pointer bevaeger sig til næste linje
string[] fields = csvParser.ReadFields();
rows.SubItems.Add(fields[0]);
rows.SubItems.Add(fields[1]);
rows.SubItems.Add(fields[2]);
rows.SubItems.Add(fields[3]);
rows.SubItems.Add(fields[4]);
rows.SubItems.Add(fields[5]);
rows.SubItems.Add(fields[6]);
rows.SubItems.Add(fields[7]);
rows.SubItems.Add(fields[8]);
rows.SubItems.Add(fields[9]);
rows.SubItems.Add(fields[10]);
rows.SubItems.Add(fields[11]);
rows.SubItems.Add(fields[12]);
rows.SubItems.Add(fields[13]);
}
listView1.Items.Add(rows);
}
}
此外,第一行只会显示,如果我真的点击了空白的空间,而不是只显示在负载,因为它应该。
下面是代码的输出:output of code
1条答案
按热度按时间bbuxkriu1#
您的行在循环之前声明,因此每次都要对其进行编辑。
更改为: