问题:我将数据保存到XML文件中,但是当我重新打开应用程序时,XML文件中的数据应该填充我的列表框但是没有显示任何内容。我已经在这里待了2个小时,但是找不到问题。
加载xml文件的代码:
public void Load()
{
XDocument myDoc = XDocument.Load(".../.../parking.xml");
var ticks = from xElem in myDoc.Descendants("Ticket")
select new Ticket
{
TimeIn = Convert.ToDateTime(xElem.Element("TimeIn").Value),
TicketNum = Convert.ToInt32(xElem.Element("TicketNumber").Value),
};
this.Clear();
AddRange(ticks);
}
我的代码试图填充列表框:
{
newList = new TickList();
newList.Load();
foreach (var nTick in newList)
{
spotList.Items.Add(nTick.ToString());
}
}
编辑:http://pastebin.com/YwPj0Nxc
无法找到在此网站上格式化的好方法,但那是XML文件。
蓝精灵编辑:添加pastebin XML
<?xml version="1.0" encoding="utf-8"?>
<Tickets>
<Ticket>
<TicketNum>1</TicketNum>
<TimeIn>2012-10-11T17:49:49.896445-05:00</TimeIn>
</Ticket>
<Ticket>
<TicketNum>2</TicketNum>
<TimeIn>2012-10-11T17:49:50.2714664-05:00</TimeIn>
</Ticket>
<Ticket>
<TicketNum>3</TicketNum>
<TimeIn>2012-10-11T17:49:50.4304755-05:00</TimeIn>
</Ticket>
<Ticket>
<TicketNum>4</TicketNum>
<TimeIn>2012-10-11T17:49:50.5944849-05:00</TimeIn>
</Ticket>
</Tickets>
答案 0 :(得分:1)
如果不查看XML文件本身就无法回答。确保所有属性和名称都与查询匹配。在将TicketList绑定到ListBox之前,请确保它具有数据。您需要进行大量调试。我认为问题是你的Linq查询。您需要简化LINQ查询。
更新:您的元素名称不匹配。我认为LINQ也缺少它的外部“Tickets”元素。它应该在“门票”中的每个元素。它说“TicketNum”,但XML有“TicketNumber”。
答案 1 :(得分:0)
看起来XML与LINQ中存在拼写错误:
Convert.ToInt32( xElem.Element( "TicketNumber" ).Value )
应该是:
Convert.ToInt32( xElem.Element( "TicketNum" ).Value )