解决方案 »

  1.   

    xml格式如下
    <?xml version="1.0" encoding="utf-8"?>
    <NewDataSet>
    <Table>
      <one>信息</one> 
      <two>广东深圳福田19T</two> 
      <thr>07968320069</thr> 
      <fou>13970607875</fou> 
      <...></..> 
      <..></..> 
      <..></...> 
      <..></..> 
      <..></..> 
      <..></..> 
    </Table>
    <Table>
      <one>信息</one> 
      <two>有货求1辆车</two> 
      <thr>8312178,13607960050</thr> 
      <fou>8319997</fou> 
      <...></..> 
      <..></..> 
      <..></...> 
      <..></..> 
      <..></..> 
      <..></..> 
    </Table>
    </NewDataSet>
      

  2.   

    首先你这个ds是哪里来的,看不到,绑定数据不应该是用你上面赋值的dt。
      

  3.   


     DataSet dds = new DataSet();           
                dds.ReadXml("Xml.xml");
                this.m_dgv.DataSource = dds.Tables[0].DefaultView;
      

  4.   

    按你的代码:  DataTable dt = new DataTable();
            private void button7_Click(object sender, EventArgs e)
            {
                dt.Columns.Add("one");
                dt.Columns.Add("two");
                dt.Columns.Add("thr");
                dt.Columns.Add("fou");            XmlDocument xml = new XmlDocument();
                xml.Load("Xml.xml");
              
                XmlNode node = xml.SelectSingleNode("NewDataSet");            foreach (XmlNode xnode in node.SelectNodes("Table"))
                {
                    DataRow row = this.dt.NewRow();
                    
                    foreach (XmlNode xcnode in xnode.ChildNodes)
                    {
                        //xML里很多字段,我只取这四个
                        if (xcnode.Name == "one" || xcnode.Name == "two" || xcnode.Name == "thr" || xcnode.Name == "fou")
                            row[xcnode.Name] = xcnode.InnerText;
                    }
                    //添加该数据行
                    this.dt.Rows.Add(row);
                }
                this.m_dgv.AutoGenerateColumns = true;
                this.m_dgv.DataSource = dt;
                this.m_dgv.DataMember = dt.TableName;
                 int count = this.m_dgv.Rows.Count; //等于10
                string str = this.m_dgv.Rows[0].Cells[0].Value.ToString(); //报错“未将对象引用设置到对象的实例”        }
      

  5.   


    Xml.xml中有很多字段,我只取其中的四个而已。并且用这方法也显示不了数据,只显示了行
      

  6.   

    和我的DataGridView的列设置有关吗?我手动生成了五列
      

  7.   

    DataGridView不用加,我测试都正常
      

  8.   

    DataGridView都不用设置,你试一下
      

  9.   

    DataGridView不设置的时候,是可以成功啊,但是关键是我要隐藏两列,还要添加一个按钮列呢
      

  10.   

    你在 foreach (XmlNode xcnode in xnode.ChildNodes)
                   设个断点,单步执行,看都读到数据没有,再看  this.dt.Rows.Add(row);里有没有加载到数据,
      

  11.   

    也只能这样了,我就不清楚,为什么我设置了列后,加载不能成功呢?
    也只能这样了,我就不清楚,为什么我设置了列后,加载不能成功呢?如果我设置了六列,然后我从xml中取4列来填充,一列隐藏,一列生成按钮列,你能帮我给个参考吗?发我邮箱也可以。[email protected]。谢谢!
      

  12.   

    一种是读取数据,给对应的grid里单元格赋值,
      

  13.   


     dt.Columns.Add("one");
                dt.Columns.Add("two");
                dt.Columns.Add("thr");
                dt.Columns.Add("fou");
                //DataColumn c1 = new DataColumn("fiv", typeof(string));
                dt.Columns.Add("fiv");
                dt.Columns.Add("six");                     //生成按钮列
                XmlDocument xml = new XmlDocument();
                xml.Load("Xml.xml");
              
                XmlNode node = xml.SelectSingleNode("NewDataSet");            foreach (XmlNode xnode in node.SelectNodes("Table"))
                {
                    DataRow row = this.dt.NewRow();
                    
                    foreach (XmlNode xcnode in xnode.ChildNodes)
                    {
                        //xML里很多字段,我只取这四个
                        if (xcnode.Name == "one" || xcnode.Name == "two" || xcnode.Name == "thr" || xcnode.Name == "fou")
                            row[xcnode.Name] = xcnode.InnerText;
                     
                    }
                    //添加该数据行
                    this.dt.Rows.Add(row);
                }
               
                this.m_dgv.AutoGenerateColumns = true;
                this.m_dgv.DataSource = dt;
                m_dgv.Columns[4].Visible = false;
                m_dgv.Columns[5].Visible = false;
                DataGridViewButtonColumn db = new DataGridViewButtonColumn();
                db.Name = "colbtn";
                db.HeaderText = "选择";
                db.DefaultCellStyle.NullValue = "选择";
                m_dgv.Columns.Add(db);            this.m_dgv.DataMember = dt.TableName;
                int count = this.m_dgv.Rows.Count; 
                string str = this.m_dgv.Rows[0].Cells[0].Value.ToString();