0
        this.dataGrid1 = new System.Windows.Forms.DataGrid();
        this.dataGrid1.DataMember = textBox1.Text.ToString();
        this.dataGrid1.Location = new System.Drawing.Point(36, 46);
        this.dataGrid1.Name = "dataGrid1";
        this.dataGrid1.Size = new System.Drawing.Size(364, 532);
        this.dataGrid1.TabIndex = 0;
        // 
        this.AutoScaleBaseSize = new System.Drawing.Size(50, 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.DefaultViewManager; 

階層構造を示していますが、子ノードと親ノードを適切に区別していません。子ノードへのリンクであるルートノードのみを表示したい。また、データグリッドでxmlを編集できるようにしたい。ファイル。

4

2 に答える 2

1

編集内容をxmlファイルに書き戻すには、次を使用します。

DataSet ds= ((DataTable)datagrid1.dataSource).DataSet; 
//this statement populates the dataset.
//which is reflected in xml file as-- 
ds.WriteXml(s, XmlWriteMode.IgnoreSchema); 
ds.AcceptChanges();
于 2015-08-09T10:15:47.310 に答える
0

DataSetでXmlを読み取った後、DataSet全体ではなくDataTableをグリッドのデータソースとして設定しないのはなぜですか?

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

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

    dataGrid1.DataSource = ds.Tables[0]; 

適切なルートテーブルを使用してテーブルインデックスを調整します。

于 2012-10-11T04:44:09.037 に答える