Mr_*_*een 1 c# xml linq updates c#-4.0
我是.net初学者.
我正在尝试使用linq 更新我的xml文件.
我在第一点陷入困境,即我无法使用linq从xml文件中获取值.
这些是我在我的代码中使用的控件:
cbBrandName -- combobox
cbProduct -- combobox
txtQuantity -- TextBox
Run Code Online (Sandbox Code Playgroud)
我正在尝试以下代码:
XElement doc = XElement.Load(@"..\..\stock.xml");
string quantity = doc.Descendants("quantity")
.Select(y => y.Element("quantity").Value.Equals(txtQuantity.Text))
/*red scribbles to 'Element' in 'where'*/
.Where(x => x.Element("productname").Value.Equals(cbProduct.Text) &&
x.Element("brandname").Value.Equals(cbBrandName.Text)).ToString();
MessageBox.Show(quantity.ToString());
Run Code Online (Sandbox Code Playgroud)
在这里我试图将"数量"值存储在quantity字符串中,以便我可以稍后操作它然后再次更新到我的xml文件.
当我做.select评论它没有显示任何错误,但当我运行它,而不是文本它system.linq.Enumerable + .....在MessageBox中显示一些.
编辑:

当我最后给.toString()它.它显示错误 - "对象引用未设置为对象的实例".当我运行它.
请
提前谢谢.
XElement doc = XElement.Load(AppDomain.CurrentDomain.BaseDirectory + "/App_Data/XMLFile.xml");
string quantity = doc.Descendants("items")
.Select(y => y.Element("quantity").Value)
.Where(x => x.Element("productname").Value.Equals(cbProduct.text) && x.Element("brandname").Value.Equals(cbBrandName.text))
.Single().Element("quantity").Value;
Run Code Online (Sandbox Code Playgroud)
这可以
更新XML值
doc.Descendants("items")
.Where(x => x.Element("productname").Value.Equals(cbProduct.Text) && x.Element("brandname").Value.Equals(cbBrandName.Text))
.Single().Element("quantity").SetValue(quantity);
doc.Save(AppDomain.CurrentDomain.BaseDirectory + "/App_Data/XMLFile.xml");
Run Code Online (Sandbox Code Playgroud)