C# LINQ查询未加载到数据网格中
我想将XML加载到DataGridView中,并将DataGridView中的更改关联到XML文件(CRUD)。我尝试了各种方法,我试图找到最好的方法,我通过迭代整个DataGridView并创建一个新的XML文档来正确加载和显示XML并保存更改,但这需要大量的处理。如何以更简单的方式进行此操作? 我正在考虑将XML文件加载到XDocument中的内存中,并在Edit_EventHandler上操作DataGridView中的更改,以便在保存更改时不必再次解析整个GridView。我已尝试使用LINQ,但查询未加载到DataGridView:C# LINQ查询未加载到数据网格中,c#,.net,linq,C#,.net,Linq,我想将XML加载到DataGridView中,并将DataGridView中的更改关联到XML文件(CRUD)。我尝试了各种方法,我试图找到最好的方法,我通过迭代整个DataGridView并创建一个新的XML文档来正确加载和显示XML并保存更改,但这需要大量的处理。如何以更简单的方式进行此操作? 我正在考虑将XML文件加载到XDocument中的内存中,并在Edit_EventHandler上操作DataGridView中的更改,以便在保存更改时不必再次解析整个GridView。我已尝试使用L
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
中看不到任何内容。使用以下查询获取属性
值
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
};
我太瞎了!但是关于CRUD操作的想法呢,根据您的经验,可以吗?@A.K,您已经在
xmlDoc
中加载了文档,您可以通过GridView
中的更改修改XDocument
,然后调用xmlDoc.Save
方法来创建/更新xml文件。因此,您最初并行编辑GridView和XDocument的想法似乎已经足够好了。我在使DataGridView可编辑方面遇到了一个问题,我如何才能做到这一点?@a.K,您针对的是什么类型的应用程序,这也是一个新问题,如果您能够创建一个包含相关细节的新问题会更好。以下是。。别的