用 webgrid 中的字符串替换空值

Replacing nulls with strings in a webgrid

我正在使用 webmatrix,我想在我的变量 "grid" 中存储一个 webgrid,但是我希望我的所有空值都在 table 的一列中,我正在创建它被字符串替换:"aString"。 我使用以下代码从我的数据库 table 加载我的网格变量。

@{
var db = Database.Open("databaseName");
var selectedData = db.Query("SELECT * FROM TableName");
var grid = new WebGrid(source: selectedData, rowsPerPage: 500); 
}

有什么简单的方法可以做到这一点吗?

有几种解决问题的方法。一种方法是更改​​ SQL 以便不返回 null。例如,您可以输入:

var selectedData = db.Query("SELECT *, coalesce(OriginalField, 'aString')  AS improvedField FROM TableName");

coalesce() 函数用您想要的字符串替换空值。 "AS" 表示结果应别名为名为 "improved field" 的字段。

我在上面放置的代码的一个缺点是,由于其中包含 *,您将同时获得带空值的原始字段和不带空值的改进字段。您可以将 * 替换为您想要的所有字段的列表。

另一种方法是不更改 SQL 而是在您使用它时更改输出。这取决于你用它做什么,所以我不会在这里展示一个例子。