Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq到Xml到Datagridview_C#_Xml_Datagridview_Linq To Xml - Fatal编程技术网

C# Linq到Xml到Datagridview

C# Linq到Xml到Datagridview,c#,xml,datagridview,linq-to-xml,C#,Xml,Datagridview,Linq To Xml,对,这里开始发疯了。我有以下代码: var query = (from c in db.Descendants("Customer") select c.Elements()); dgvEditCusts.DataSource = query.ToList(); 在这种情况下,db与XDocument.Load调用相关。如何将数据导入DataGridView 我想我应该提一下:它返回一个完全空白的dgv

对,这里开始发疯了。我有以下代码:

var query = (from c in db.Descendants("Customer")
                             select c.Elements());
                dgvEditCusts.DataSource = query.ToList();
在这种情况下,db与XDocument.Load调用相关。如何将数据导入DataGridView

我想我应该提一下:它返回一个完全空白的dgv

并不是说XML应该太重要,而是举个例子:

<Root>
  <Customer>
    <CustomerNumber>1</CustomerNumber>
    <EntryDate>2010-04-13T21:59:46.4642+01:00</EntryDate>
    <Name>Customer Name</Name>
    <Address>Address</Address>
    <PostCode1>AB1</PostCode1>
    <PostCode2>2XY</PostCode2>
    <TelephoneNumber>0123456789</TelephoneNumber>
    <MobileNumber>0123456789</MobileNumber>
    <AlternativeNumber></AlternativeNumber>
    <EmailAddress>email@address.com</EmailAddress>
  </Customer>
</Root>

1.
2010-04-13T21:59:46.4642+01:00
客户名称
地址
AB1
2XY
0123456789
0123456789
email@address.com

当您调用
db.substands(“客户”)
时,您只返回包含名称
Customer
的元素。不是因为孩子。看

因此,当您调用
c.Elements()
时,它试图获取客户的子元素,这些子元素不存在b/c,它们被过滤掉了


我想如果你放弃
客户
过滤可能会奏效。

啊,没关系,我终于找到了自己问题的答案。以下是可能存在此问题的任何其他人的代码:

var query = from c in db.Descendants("Customer")
                            select new
                            {
                                CustomerNumber = Convert.ToInt32((string)c.Element("CustomerNumber").Value),
                                Name = (string)c.Element("Name").Value,
                                Address = (string)c.Element("Address").Value,
                                Postcode = (string)c.Element("PostCode1").Value + " " + c.Element("PostCode2").Value
                            };
                dgvEditCusts.DataSource = query.ToList();

您能提供示例xml吗?我正要发布同样的内容:)我注意到了一件事,但无法解释的是,.Elements()查询的ToList正在返回一个XContainer.GetElements()对象,因此,.ToList()似乎没有像人们所期望的那样将数据具体化。很高兴你把这个整理好了。