![](/img/trans.png)
[英]Visual Studio 2015 C# color dialog for textbox when clicked in
[英]Displaying XML data in textbox through C# in Visual Studio 2015
我目前正在開發一個應用程序,該應用程序允許用戶選擇餐館的訂單。 當用戶單擊訂單並單擊提交時,它將添加到名為“ order.xml”的XML文件中。 但是,在同一單擊上,應將文件中輸入的所有內容顯示回同一視圖的文本框中。 我收到標為“對象引用未設置為對象實例”的錯誤。 在下面顯示的代碼上...
var order = from MenuInfo in doc.Descendants("MenuInfo")
select new
{
Data1 = MenuInfo.Element("Data1").Value,
Data2 = MenuInfo.Element("Data2").Value,
Data3 = MenuInfo.Element("Data3").Value,
};
您能幫我調試這個問題嗎?
完整代碼示例
XDocument doc = XDocument.Load("order.xml");
XElement root = new XElement("MenuInfo");
root.Add(new XElement("Data1", mealListView.SelectedValue.ToString()));
root.Add(new XElement("Data2", _seat));
root.Add(new XElement("Data3", buttonTable1.Text));
doc.Element("MenuInfo").Add(root);
doc.Save("order.xml");
var order = from MenuInfo in doc.Descendants("MenuInfo")
select new
{
Data1 = MenuInfo.Element("Data1").Value,
Data2 = MenuInfo.Element("Data2").Value,
Data3 = MenuInfo.Element("Data3").Value,
};
summaryTextBox.Text = "";
foreach (var MenuInfo in order)
{
summaryTextBox.Text = summaryTextBox.Text + "Meal: " + MenuInfo.Data1 + "\n";
summaryTextBox.Text = summaryTextBox.Text + " Seat ID: " + MenuInfo.Data2 + "\n";
summaryTextBox.Text = summaryTextBox.Text + " Table ID: " + MenuInfo.Data3 + "\n";
}
if (summaryTextBox.Text == "")
summaryTextBox.Text = "No Results.";
我不確定100%是什么問題,但我認為可能與以下問題有關。
您創建一個名為MenuInfo
的新元素作為root
變量:
XElement root = new XElement("MenuInfo");
然后,您隨后將此新元素附加到XML中的另一個元素,也稱為MenuInfo
:
doc.Element("MenuInfo").Add(root);
所以,現在你可能有一個名為元素MenuInfo
與所謂的子元素MenuInfo
,就像這樣:
<MenuInfo>
<MenuInfo>
<Data1>one</Data1>
<Data2>two</Data2>
<Data3>three</Data3>
</MenuInfo>
</MenuInfo>
在隨后的選擇中,您將選擇不包含任何Data1
, Data2
或Data3
子元素的父MenuInfo
元素,因此當您這樣做時
select new
{
Data1 = MenuInfo.Element("Data1").Value,
Data2 = MenuInfo.Element("Data2").Value,
Data3 = MenuInfo.Element("Data3").Value,
};
您正在嘗試訪問不存在的元素上的Value
屬性。
您最好在加載后立即嘗試在XML中找到MenuInfo
元素,如果不存在,則創建它。 否則,只需將DataN
元素追加到已經存在的元素上即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.