我正在尝试创建一个包含 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");
}
我将不胜感激对此事的任何帮助或见解。