2012-10-11 36 views
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; 

它顯示了層次結構,但它沒有正確區分子節點和父節點。我只希望看到根節點應該是鏈接到其子節點。另外,我想讓datagrid能夠編輯xml文件。將xml根節點讀入數據網格並將編輯寫回到xml文件

回答

0

讀取XML數據集中你爲什麼不設置數據表,而不是整個數據集作爲網格的數據源後?

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

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

    dataGrid1.DataSource = ds.Tables[0]; 

用適當的根表調整表索引。

+0

這works.now u能請告訴我如何編輯數據網格使XML中的相應值進行編輯? – akanki

+0

這是否幫助:http://www.codeproject.com/Articles/9697/Edit-Almost-Anything-in-a-DataGrid 順便說一句,你需要更新後,從數據表中再次得到XML。 – abhishek

+0

這個鏈接在pgm運行的時候沒有幫助。我想編輯數據網格,以便更改的值可以反映在xml文件中。 – akanki

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();