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()似乎没有像人们所期望的那样将数据具体化。很高兴你把这个整理好了。