LINQ 查询不会加载到数据网格中
本文关键字:数据 数据网 网格 加载 查询 LINQ | 更新日期: 2023-09-27 18:36:25
我想将XML加载到DataGridView中,并将从datagridview到XML文件(CRUD)的更改相关联。我已经尝试了各种方法,我试图找到最好的方法,我已经让XML正确加载和显示,并通过循环访问整个DataGridView并创建一个新的XML文档来保存更改,但这需要大量处理。如何以更简单的方式执行此操作?我正在考虑将 XML 文件加载到 XDocument 中的内存中,并在Edit_EventHandler上操作来自 DataGridView 的更改,这样当我想要保存更改时,我就不必再次解析整个 GridView。我尝试使用 LINQ,但查询未加载到 DataGridView 中:
string path = @"D:'WorkData'users.xml";
xmlDoc = XDocument.Load(path);
var q = from item in xmlDoc.Descendants("client")
select new
{
Name = item.Element("ID").Value,
Mail = item.Element("email").Value
};
dataGridView1.DataSource = q.ToList();
和 XML:
<?xml version='1.0'?>
<clients>
<client ID='0000100000' email='email0@mail.com'/>
<client ID='0000100001' email='email1@mail.com'/>
</clients>
您尝试访问的是属性而不是元素。您的查询可能会引发异常,至少它没有返回任何结果,为什么您在GridView
中看不到任何内容。使用以下查询获取Attribute
值。
var q = from item in xmlDoc.Descendants("client")
select new
{
Name = item.Attribute("ID").Value,
Mail = item.Attribute("email").Value
};
Id 和电子邮件是属性而不是元素!
var q = from item in xmlDoc.Descendants("client")
select new
{
Name = item.Attribute("ID").Value,
Mail = item.Attribute("email").Value
};