我正在开发一个.NET(C#)的Web服务,它以XML格式显示SQL查询的结果。查询是:
return dbContext.data
.SqlQuery("SELECT a, b, c, d, e, f, g FROM person").ToList();
现在假设我的数据库中的字段f
和g
是null
。在我的网络服务中,我得到了这个:
<person>
<a>'LU'</a>
<b>'1'</b>
<c>'JOHN'</c>
<d>'1'</d>
<e>'REP1'</e>
</person>
如您所见,字段f
和g
未显示在XML结果中。由于我将这些数据插入到SQLite数据库中,我想得到空/空字段,因此数据库结构仍然相同。我想要这样的东西:
<person>
<a>'LU'</a>
<b>'1'</b>
<c>'JOHN'</c>
<d>'1'</d>
<e>'REP1'</e>
<f></f>
<g></g>
</person>
在发布此处之前,我已尝试在我的SQL查询中使用ISNULL
:
return dbContext.data
.SqlQuery("SELECT a, b, c, d, e, ISNULL(f, null) as f, ISNULL(g,null) as g FROM person").ToList();
但它不起作用。知道如何获取XML中的所有字段,即使它们是空的还是空的?
答案 0 :(得分:0)
使用XMLELEMENT,它会根据请求返回一个空元素:
来自here
的示例SQL> select xmlelement("EMP", xmlelement("ENAME", ename),
xmlelement("JOB", job),
xmlelement("MGR", mgr)
).getclobval() xml
from scott.emp;
XML
----------------------------------------------------------------
<EMP><ENAME>KING</ENAME><JOB>PRESIDENT</JOB><MGR></MGR></EMP>
<EMP><ENAME>BLAKE</ENAME><JOB>MANAGER</JOB><MGR>7839</MGR></EMP>
...