【问题标题】:how to load a datagridview with my data from xml如何使用来自 xml 的数据加载 datagridview
【发布时间】:2013-08-09 11:40:50
【问题描述】:

我有这个 XML:

<container_1 attr1="..." attr2="..." attr3="...">
  <rekord_1>
    <type_1 attr1="..." attr2="..." ... />
    <type_2 attr1="..." attr2="..." ... /> 
  </rekord_1>
  <rekord_2>... </rekord_2>
  .
  .
  <rekord_N> ... </rekord_N>
</container_1>

我可以解析我想要的方式并在控制台应用程序中显示它(使用XMLElementsXMLNodeLists 和一些循环),但我想制作一个带有 GUI 和表格视图的应用程序。 我的表单应用程序可以读取 XML,但它现在只能处理 1 个标签。例如,如果我得到container_1 标签,它本身只输出container_1 的属性,但我也想在表格视图中显示container_1 下的记录。

我想让它像控制台中的旧程序一样可以查看。

如何从我的 XML 中取出数据,以便能够使用元素/属性?因为我想在表格视图中设置它们的位置。 我应该阅读哪些文档?或者有什么对我有用的例子吗?

编辑(8 月 20 日): 这是代码的主要部分:

private void button1_Click(object sender, EventArgs e)
    {
        Stream input=null;
        OpenFileDialog dialog = new OpenFileDialog();
        openFileDialog1.InitialDirectory = "C:/";
        openFileDialog1.Filter = "xml file | *.xml";
        openFileDialog1.FilterIndex = 2;
        openFileDialog1.RestoreDirectory = true;

        if (openFileDialog1.ShowDialog() == DialogResult.OK) {
            try
            {
                if ((input = openFileDialog1.OpenFile()) != null)
                {
                    using (input)
                    {
                        XmlReader xmlFile = XmlReader.Create(input, new XmlReaderSettings());
                        DataSet dataSet = new DataSet();
                        dataSet.ReadXml(xmlFile);
                        DataSet containers = new DataSet();
                        dataGridView1.DataSource = dataSet.Tables[tag];
                        xmlFile.Close();
                    }
                }
            }
            catch (Exception ex) {
                MessageBox.Show("ERROR");
            }
        }
    }

如果我的标签是容器或 rekord,此函数可以很好地显示并输出: outputs

但是我不能显示container1+它的rekords,container2+它的rekords等等,只能同时显示所有容器或所有rekords。

【问题讨论】:

  • 您能展示一下您已经尝试过的代码以及输出的样子吗?
  • 我做到了。抱歉回复晚了,感谢您对我的帮助。

标签: c# xml datagridview datatable dataset


【解决方案1】:

声音像你想要做的一样,将XML拉到DataSet中,然后将数据集输入到GridView。

,看起来有人已经在堆栈交换中提出了这个问题,也是

Any way to populate items from xml to Datagridview using c#

加法

您拥有的是DataSet,具有多个DataTablesDataGridView只能一次在DataTable @。

何时代码

dataGridView1.DataSource = dataSet.Tables[tag];

并放入987654332 tag您正在拉回container_1 的数据集。

我建议你看看msdn for DataGridView,@ 987654323和DataTable查看这是否真的要为你工作。

也许也查看它C# DataGridView Tutorial

它不会受伤。

【讨论】:

  • 我也找到了这个问题。在我的情况下,如果我告诉该程序,那个标签是Container_1它会向我展示Container_1的所有信息和它的好处,但我想在同一时间同时看到Container_1标签下的所有连接的记录。这是我的主要问题,我不能在同一时间做到。 span>
  • 您的@ 987654334,container_2将在数据集中显示为单独的表。 span>
  • ISNT有任何解决方案我的计划?我只想要一个简单的表视图,其中一个行中的一个数字_1,然后再见了下几行,Container_2等......你有什么想法吗?谢谢
  • 使用dataSet作为内存位置,类似于所有XML数据的变量。然后,您必须决定如何将信息从数据集中拉出,并进入GridView / table /无论您想要使用的内容。如果你想要Container_2之后container_1然后添加另一条不同的代码线来拉出container_2 span>
  • 我遇到了这个教程。我刚刚有时间再次在这个项目上工作,所以我要阅读更多。谢谢你的帮助! span>
猜你喜欢
  • 2017-11-14
  • 2014-11-20
  • 2020-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多