通过DataGrid编辑XML文件

时间:2012-10-11 05:09:19

标签: c# xml

  

可能重复:
  show only root node in data grid

        this.dataGrid1 = new System.Windows.Forms.DataGrid();
        this.dataGrid1.DataMember = "";
        this.dataGrid1.Location = new System.Drawing.Point(36, 50);
        this.dataGrid1.Name = "dataGrid1";
        this.dataGrid1.Size = new System.Drawing.Size(464, 432);
        this.dataGrid1.TabIndex = 0;
        // 
        this.AutoScaleBaseSize = new System.Drawing.Size(35, 13);
        this.ClientSize = new System.Drawing.Size(592, 573);
        this.Controls.AddRange(new System.Windows.Forms.Control[] { this.dataGrid1 });
        ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
        this.ResumeLayout(false);


        XmlDataDocument xmlDatadoc = new XmlDataDocument();
        xmlDatadoc.DataSet.ReadXml("abcd.xml");

        DataSet ds = new DataSet("abc");
        ds = xmlDatadoc.DataSet;

        dataGrid1.DataSource = ds.Tables[0];

上面的代码读取XML文件并显示在DataGrid中。有人可以告诉我如何编辑DataGrid,以便可以编辑XML中的相应值吗?

2 个答案:

答案 0 :(得分:0)

XML和Datagrid数据集没有相互关联,因此您需要通过从Dataset编写XML来手动完成。

答案 1 :(得分:0)

要将DataSet的更改保存回XML文件,您只需执行

     ds.Tables[0] = (DataTable)(dataGrid1.DataSource);
     ds.WriteXml("your path here");

作为旁注,您的代码有点多余。当您创建XmlDataDocument的实例时,您可以访问它的DataSet属性,而无需在代码显示时创建新的DataSet实例。如果您只想将XML文件读入DataSet,则可以执行以下操作

    DataSet ds = new DataSet("abc");
    ds.ReadXml("abcd.xml");

    dataGrid1.DataSource = ds.Tables[0];