Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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查询未加载到数据网格中_C#_.net_Linq - Fatal编程技术网

C# LINQ查询未加载到数据网格中

C# LINQ查询未加载到数据网格中,c#,.net,linq,C#,.net,Linq,我想将XML加载到DataGridView中,并将DataGridView中的更改关联到XML文件(CRUD)。我尝试了各种方法,我试图找到最好的方法,我通过迭代整个DataGridView并创建一个新的XML文档来正确加载和显示XML并保存更改,但这需要大量的处理。如何以更简单的方式进行此操作? 我正在考虑将XML文件加载到XDocument中的内存中,并在Edit_EventHandler上操作DataGridView中的更改,以便在保存更改时不必再次解析整个GridView。我已尝试使用L

我想将XML加载到DataGridView中,并将DataGridView中的更改关联到XML文件(CRUD)。我尝试了各种方法,我试图找到最好的方法,我通过迭代整个DataGridView并创建一个新的XML文档来正确加载和显示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
中看不到任何内容。使用以下查询获取
属性

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,您针对的是什么类型的应用程序,这也是一个新问题,如果您能够创建一个包含相关细节的新问题会更好。以下是。。别的