c#添加到xml问题

时间:2016-11-09 20:40:41

标签: c# xml

我有这段代码

private void submitButton_Click(object sender, EventArgs e)
    {
        XDocument doc = XDocument.Load("order.xml");
        XElement root = new XElement("MenuInfo");

        foreach(DataGridViewRow dr in dataGridView.Rows)
        {
            if(dr.Selected)
            {
                root.Add(new XElement("Meal", dr.Cells["Food"].Value.ToString()));
                root.Add(new XElement("SeatID", _seat));
                root.Add(new XElement("TableID", buttonTable1.Text));
                root.Add(new XElement("Price", dr.Cells["Price"].Value.ToString()));
                doc.Element("Menu").Add(root);
                doc.Save("order.xml");
            }
        }    

        MessageBox.Show("The order has been placed.");
        Main nf = new Main();
        nf.ShowDialog();
        this.Close();
    }

它曾经工作,我将使用以下元素和值创建一个order.xml文件,但现在没有任何反应。它仍然显示消息框,说明已下订单,但是当我查看xml文件时,没有添加任何内容。任何人都可以向我解释为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

正如其他人所建议的那样,数据网格可能是空的。我会为submitButton_Click函数添加验证

if (dataGridView.Rows.Count == 0)
{
    "throw some error"
}

如果你过去了,那么我也会检查XDocument以确保有内容。包装代码以显示另一个if语句内的对话框。像这样的东西

if(doc.ToString().Length > 0)
{
    "Your dialog code here"
}