C# を使用してデータベースにクエリを実行し、DataTable
. これから、DataTable
LINQ to XML を使用して XML ファイルを作成します。
私の問題は、データ テーブルの null 列の場合、要素で SetAttributeValue を呼び出すと、空の属性が作成されることです。SetAttributeValue(name, value)
値が の場合、属性をまったく追加しませんnull
。この動作を模倣する方法はあり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;