0

我正在尝试创建一个包含 3 列的列表(我不需要查看列表,临时列表很好)。当前 Button1 被按下并且 Button1.Content 存储在 ListBox1 中。然后按下 Button2 并将 Button2.Content 发送到同一个 ListBox1。这些按钮有很多,所以这个动作可能会发生很多次。
在 ListBox1 具有这些按钮(单列)的内容后,我按下 ExportButton,它将 ListBox1 的内容发送到生成列表的 LINQ 查询。

public void SelectPropertyInfo(string Content)
    {
        using (Context con = new Context())
        {
           var query =
                     from o in con.O_TABLEs
                     join p in con.P_TABLEs on o.PN equals p.PN
                     where p.PZ == Content
                     select new
                     {
                         customerFirstName = o.CustomerFirstName,
                         customerLastName = o.CustomerLastName,
                         propertyAddress = p.PropertyAddress
                      };

此时,我将此数据发送到 XML 文件。

XElement PropertyList =
                new XElement("customers",
                            (from q in query.ToList()
                             select new XElement("customer",
                             new XElement("CustomerFirstName", q.customerFirstName),
                             new XElement("CustomerLastName", q.customerLastName),
                             new XElement("Address", q.propertyAddress))));
PropertyList.Save("S:/customers.xml");
       }
}

只要我从 ListBox1 发送一行,这一切都很好,但是如果我发送多行,最后一个查询会覆盖所有以前的数据,这是有道理的。我不知道如何通过 LINQ 查询在每次迭代后存储数据。我知道我需要在发送 ListBox1 的每一行之后存储数据,然后在发送 ListBox1 的所有行之后,我想将数据发送到 XML 文件。我认为实现此目的的另一种方法是创建一个可以从 LINQ 查询发送数据的方法,但我仍然不知道每次运行 LINQ 查询时如何存储数据。

public void CreateXMLList (string CustomerFirstName, string CustomerLastName, string  PropertyAddress)           
       {
         XElement PropertyList = new XElement("customers",
                                 new XElement("CustomerFirstName", CustomerFirstName),
                                 new XElement("CustomerLastName", CustomerLastName),
                                 new XElement("Address", PropertyAddress));

            PropertyList.Save("S:/customers.xml");
       }

我将不胜感激对此事的任何帮助或见解。

4

1 回答 1

0

显然,如果您想在一个 XML 文件中存储多个客户,您需要在 XML 文件中存储多个客户,而不仅仅是一个。

在列表框行的循环之外创建PropertyList,让它包含一个名为 的元素Customers,然后在每个列表框行迭代中添加一个Customer元素(每个列表框行一个元素)。

然后,循环结束后,将 XML 保存到文件中。

另外,请注意,在您当前的代码中,您将一个客户存储在一个名为customers的元素中。这很令人困惑。

于 2013-01-25T23:23:50.753 回答