自动在数据网格视图上添加一行 C#
Automatically add a row on Data Grid View C#
基本上我创建的表单应用程序允许上传 XML 文件,然后 XML 文件的内容显示在数据网格视图中。
这是我搜索和打开文件的代码。
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "XML | *.xml";
if (ofd.ShowDialog() == DialogResult.OK)
{
XmlDocument xDOC = new XmlDocument();
xDOC.Load(ofd.FileName);
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = xDOC.InnerText;
}
这里是 XML:
<people>
<person> David </person>
<person> Joey </person>
<person> Adam </person>
</people>
我设法让它工作了,但由于某种原因,XML 文件的所有内容都显示在同一行!帮忙?!
目前您正在同一单元格中添加文件的全部内容 (InnerText)。想要的Node的内容你得取。
像这样的东西应该可以工作:
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "XML | *.xml";
if (ofd.ShowDialog() == DialogResult.OK)
{
XmlDocument xDOC = new XmlDocument();
xDOC.Load(ofd.FileName);
//We loop through each person node of our document
foreach(XmlNode node in xDOC.SelectNodes("people/person"))
{
//And add its content to a new row
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = node.InnerText;
}
}
我们所做的是将我们想要的项目的 XPath 提供给 SelectNode 函数。将其视为文件路径,但 Xml.
我会建议您查看 System.Linq.Xml namespace and particularly the XDocument class,我认为它提供了一种更简单的使用 Xml 的方法。
基本上我创建的表单应用程序允许上传 XML 文件,然后 XML 文件的内容显示在数据网格视图中。
这是我搜索和打开文件的代码。
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "XML | *.xml";
if (ofd.ShowDialog() == DialogResult.OK)
{
XmlDocument xDOC = new XmlDocument();
xDOC.Load(ofd.FileName);
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = xDOC.InnerText;
}
这里是 XML:
<people>
<person> David </person>
<person> Joey </person>
<person> Adam </person>
</people>
我设法让它工作了,但由于某种原因,XML 文件的所有内容都显示在同一行!帮忙?!
目前您正在同一单元格中添加文件的全部内容 (InnerText)。想要的Node的内容你得取。
像这样的东西应该可以工作:
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "XML | *.xml";
if (ofd.ShowDialog() == DialogResult.OK)
{
XmlDocument xDOC = new XmlDocument();
xDOC.Load(ofd.FileName);
//We loop through each person node of our document
foreach(XmlNode node in xDOC.SelectNodes("people/person"))
{
//And add its content to a new row
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = node.InnerText;
}
}
我们所做的是将我们想要的项目的 XPath 提供给 SelectNode 函数。将其视为文件路径,但 Xml.
我会建议您查看 System.Linq.Xml namespace and particularly the XDocument class,我认为它提供了一种更简单的使用 Xml 的方法。