XML Web服务未显示空字段

时间:2015-01-15 09:30:50

标签: c# sql-server web-services sqlite

我正在开发一个.NET(C#)的Web服务,它以XML格式显示SQL查询的结果。查询是:

return dbContext.data
.SqlQuery("SELECT a, b, c, d, e, f, g FROM person").ToList();

现在假设我的数据库中的字段fgnull。在我的网络服务中,我得到了这个:

<person>
<a>'LU'</a>
<b>'1'</b>
<c>'JOHN'</c>
<d>'1'</d>
<e>'REP1'</e>
</person>

如您所见,字段fg未显示在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中的所有字段,即使它们是空的还是空的?

1 个答案:

答案 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>
...