无法在数据视图中查看表的所有行
本文关键字:数据 视图 | 更新日期: 2023-09-27 18:03:59
我正在编写一段代码,其中我正在遍历包含特定文件夹结构的XML文件。我想以表格格式显示文件夹名称和其中的文件。下面是我的代码:
DataTable dtCheckPropertyOutput = new DataTable();
dtCheckPropertyOutput.Columns.Add("Property Name");
dtCheckPropertyOutput.Columns.Add("Expected value");
string folderName = null;
string fileName = null;
// display each folder
foreach (var folder in mainFolder.Elements())
{
DataRow anyRow = dtCheckPropertyOutput.NewRow();
folderName = folder.Attribute("Name").Value;
MessageBox.Show(folderName);
anyRow["Property Name"] = "Folder";
anyRow["Expected Value"] = folderName;
// display each file
foreach (var file in folder.Elements())
{
fileName = file.Attribute("Name").Value;
anyRow["Property Name"] = "File";
anyRow["Expected Value"] = fileName;
}
dtCheckPropertyOutput.Rows.Add(anyRow);
dataGridView1.DataSource = dtCheckPropertyOutput;
问题是,我只能查看xml中的最后一个元素,而不是所有条目。例如,如果xml如下所示,我只能查看文件3和文件5[但不能查看文件夹1,文件1,文件夹2和文件2]:
<Root>
<MainFolder Name="Main Folder">
<Folder Name="Folder1">
<File Name="File1" />
<File Name="File3" />
</Folder>
<Folder Name="Folder2">
<File Name="File2" />
<File Name="File5" />
</Folder>
</MainFolder>
</Root>
拜托,谁来帮帮我。
好的。这只是一个愚蠢的错误。我是c#的新手,我还在练习各种各样的东西。为了解决这个问题,我只在嵌套foreach循环开始之前和嵌套foreach循环结束之前添加了以下两行:
dtCheckPropertyOutput.Rows.Add(anyRow);
anyRow = dtCheckPropertyOutput.NewRow();
我不确定,但请纠正我,让我知道是否有更好的方法。