【发布时间】:2014-09-23 04:11:04
【问题描述】:
我正在使用 C# 查询数据库并创建 DataTable。从这个DataTable 我正在使用 LINQ to XML 创建一个 XML 文件。
我的问题是,对于数据表中的空列,当我在元素上调用 SetAttributeValue 时,它会创建一个空白属性。如果值为null,SetAttributeValue(name, value) 根本不会添加该属性。有没有办法模仿DBNull.Value 的这种行为?我不想检查每一行和每一列来查看值是否等于DBNull.Value。
预期:
<Root>
<Element1 E1="Test"/>
</Root>
实际:
<Root>
<Element1 E1="Test" E2=""/>
</Root>
Element1 的代码:
DataTable testTable = new DataTable();
testTable.Columns.Add("E1");
testTable.Columns.Add("E2");
testTable.Rows.Add("Test", DBNull.Value);
XElement element = new XElement("Element1");
element.SetAttributeValue("E1", testTable.AsEnumerable().Select(item => item["E1"]));
element.SetAttributeValue("E2", testTable.AsEnumerable().Select(item => item["E2"]));
return element;
【问题讨论】:
-
您是否会添加具有预期和非预期行为的 XML 文件。
-
能否展示一下从DataTable 到Xml 的转换代码?
标签: c# xattribute