xml 如下
<?xml version="1.0" encoding="utf-8" ?> 
- <stories>
- <story>
  <title>C#</title> 
- <author>
  <name>T.T</name> 
  <nationality>China</nationality> 
  </author>
  <rating>eerie</rating> 
  </story>
- <story>
  <title>SQL SERVER 2005</title> 
- <author>
  <name>Jone</name> 
  <nationality>USA</nationality> 
  </author>
  <rating>gegsEG</rating> 
  </story>
- <story>
  <title>A Single Man</title> 
- <author>
  <name>Wisz</name> 
  <nationality>England</nationality> 
  </author>
  <rating>a bi</rating> 
  </story>
  </stories>我是这样写的   private void button1_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable("xmlFile");
            
            dt.Columns.Add(new DataColumn("title",typeof(string)));
            dt.Columns.Add(new DataColumn("name", typeof(string)));
            dt.Columns.Add(new DataColumn("nationality", typeof(string)));
            dt.Columns.Add(new DataColumn("rating", typeof(string)));
            XmlDocument document = new XmlDocument();
            document.Load(@"C:\C#Demo\XMLFile1.xml");
            XmlNode node = document.DocumentElement;
            //XmlNodeList nodelist;
         
            foreach (XmlNode xnode in document.SelectNodes("stories/story"))
            {
                DataRow row = dt.NewRow();
                row[xnode.Name] = xnode.InnerText;
                dt.Rows.Add(row);
            }
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            dataGridView1.DataSource = ds.Tables["xmlFile"];
           
            
        }编译通过了,但是datagridview 没数据 怎么办。。

解决方案 »

  1.   

    ds.Tables["xmlFile"]Debug一下看看是否有数据……
      

  2.   

    代码看不出问题,就看看dataset中是否正确加入了数据
      

  3.   

    debug到row[xnode.Name] = xnode.InnerText;
    显示列“story”不属于表 xmlFile。
    如果我新建一个列dt.Columns.Add(new DataColumn("story",typeof(string)));
    的话 有数据 但是数据全部写在story这一列里了。。
      

  4.   

    dt.Columns.Add(new DataColumn("story", typeof(string)));
    判断添加值到datatable
    单步判断
      

  5.   


            foreach (XmlNode xnode in xmlDoc.SelectNodes("stories/story"))
            {
                 DataRow row = dt.NewRow();
                 row["title"] = xnode.SelectSingleNode("title").InnerText.ToString();
                 row["name"] = xnode.SelectSingleNode("author/name").InnerText.ToString();
                 row["nationality"] = xnode.SelectSingleNode("author/nationality").InnerText.ToString();
                 row["rating"] = xnode.SelectSingleNode("rating").InnerText.ToString();
                dt.Rows.Add(row);
            }
            dataGridView1.DataSource = dt;