【发布时间】:2012-12-19 02:12:57
【问题描述】:
我需要将 XML 属性值保存在数据库中,如果选中复选框,则使用信息。如果复选框被选中,则属性值为“TRUE”,否则为 false。当我使用foreach语句时,通常会分配最后一个枚举值。
这是我的代码的一部分:
XmlAttribute xmlAttribute = xmlDoc.CreateAttribute("BooleanValue");
foreach (string value in list) //list is a List<object>
{
XmlNode xmlNode = xmlDoc.CreateNode(XmlNodeType.Element, "VALUE", "");
if (checkBox1.Checked ||
checkBox2.Checked ||
checkBox3.Checked)
xmlAttribute.Value = "TRUE";
if (!checkBox1.Checked ||
!checkBox2.Checked ||
!checkBox3.Checked)
xmlAttribute.Value = "FALSE";
xmlNode.Attributes.Append(xmlAttribute);
xmlNode.InnerText = val;
childNode.AppendChild(xmlNode);
}
当我运行我的应用程序时,我得到一个 XML 属性 xmlAttribute “FALSE”值。
我需要具备的: 我需要有以下 XML:
<ROOT><NODE><VALUE ATTRIBUTE="TRUE">Value 1</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="TRUE">Value 2</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 3</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 4</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="TRUE">Value 5</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 6</VALUE></NODE>
</ROOT>
我实际得到的:
<ROOT><NODE><VALUE ATTRIBUTE="FALSE">Value 1</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 2</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 3</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 4</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 5</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 6</VALUE></NODE>
</ROOT>
因为在 C# 中 FALSE 值停留在 foreach 循环中的最后一个位置
问题是:如何为我的属性分配正确的值。谢谢
【问题讨论】:
-
修改后是否保存文件?
-
没有。 XML 保存到数据库字段中
-
我仍然认为这是一个布尔逻辑问题,如果您的任何复选框未选中,您将永远不会返回任何内容,而是返回 false。如果您使用 ELSE 或 ELSE IF,则相同。