3 つの列を持つリストを作成しようとしています (リストを表示する必要はありません。一時的なリストで問題ありません)。現在、Button1 が押され、Button1.Content が ListBox1 に格納されています。次に Button2 が押され、Button2.Content が同じ ListBox1 に送信されます。これらのボタンは多数あるため、このアクションが何度も発生する可能性があります。
ListBox1 にこれらのボタン (単一列) のコンテンツが含まれた後、ListBox1 のコンテンツを LINQ クエリに送信してリストを生成する ExportButton を押します。
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 から 1 つの行を送信する限り、これはすべてうまく機能しますが、複数の行を送信すると、最後のクエリによって以前のデータがすべて上書きされます。これは理にかなっています。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");
}
この件に関するご支援やご意見をいただければ幸いです。