解决方案 »

  1.   

    给你一段读取XML到datatable的代码,这个应该满足你
      private static DataTable XmlToDataTable(string UrlPath)
    {
        string fileName = UrlPath;
        XmlDocument doc = new XmlDocument();
        doc.Load(fileName);
        DataTable dt = new DataTable();
        XmlNode songNode = doc.SelectSingleNode("/Persons/Person");
        string colName;
        if (songNode != null)
        {
            for (int i = 0; i < songNode.ChildNodes.Count; i++)
            {
                colName = songNode.ChildNodes.Item(i).Name;
                dt.Columns.Add(colName);
            }
        }
        DataSet ds = new DataSet();
        ds.Tables.Add(dt);
        ds.ReadXml(fileName);
        return dt;
    }
      

  2.   

    使用linq to sql吧。
    http://blog.csdn.net/duanzi_peng/article/details/24018431
      

  3.   


    是linq to  xml ,近几天用linq to  sql  比较多。
      

  4.   

    reader.NodeType == XmlNodeType.Element的时候可以用reader.ReadString()读到内容,空也可以读到
      

  5.   


    谢谢啦?确实可以提取到,reader.ReadString() 完以后,进入到了下一个节点了,由于while(reader.read),相当于移动了两部,虽然能提取到空字符,但是列名提取会漏掉,总感觉用这种方式不是太合理
      

  6.   


    是linq to  xml ,近几天用linq to  sql  比较多。
    谢谢了,头一次听说,特地花了一晚上时间看了看 linq to sql,仿照网上的例子,设置表格关联一对多,最后会报错,没有成功。又长见识了
      

  7.   


      DataSet ds = new DataSet();
                ds.ReadXml("tt.xml");
                string age = ds.Tables["Person"].Rows[0]["Age"].ToString();
                if (age.Length==0)
                {
                    MessageBox.Show("值为空");
                }
      

  8.   


    是linq to  xml ,近几天用linq to  sql  比较多。
    谢谢了,头一次听说,特地花了一晚上时间看了看 linq to sql,仿照网上的例子,设置表格关联一对多,最后会报错,没有成功。又长见识了你误会了,人家给你的建议是 linq to xml,不是linq to sql 啊。
      

  9.   


    是linq to  xml ,近几天用linq to  sql  比较多。
    谢谢了,头一次听说,特地花了一晚上时间看了看 linq to sql,仿照网上的例子,设置表格关联一对多,最后会报错,没有成功。又长见识了
    是不是 感觉代码 风格写起来比较 明朗??嘿嘿,多多学习。