【发布时间】:2015-01-15 17:43:33
【问题描述】:
我正在用 .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 中的所有字段,即使它们为空或为空?
【问题讨论】:
-
我会翻译你的 ISNULL 用法:
if f is null then null。您需要的是 ISNULL 方法的第二个参数中的空刺...我猜 :) -
如果
f是一个整数而不是一个字符串怎么办? -
用-1表示null;将 f 转换为字符串,返回空字符串或 'NULL' 等等。
-
好吧,这行得通。谢谢!
标签: c# sql-server web-services sqlite