哪种方法更好用:
BoundField.NullDisplayText
没有设置。在 SQL 查询中可以预见 NULL 情况,即SELECT ISNULL(amount, 0) FROM table
或者
BoundField.NullDisplayText
设置,例如“0.00 %”。SQL 查询中没有预见到 NULL 情况,即SELECT amount FROM table
你怎么看?
显然是第一个,因为您使用 ISNULL 进行过滤。
我认为第二个选择更好。通常最好在中间层或表示层而不是数据库中格式化输出。因此,我想将空值返回到数据层代码上方的层,并让它决定如何处理显示而不是在数据库中做出选择。
通过将空值转换为零,您对所有使用查询的系统声明空值等于用户故意输入零。如果情况确实如此,那么很好,使用 Coalesce 而不是 IsNull 并将空值转换为零。但是,如果查询被重用的可能性很小,并且缺少值的处理方式可能与输入零的方式不同,我会将空值返回到中间层并让它决定如何处理它.
不同之处在于 0.00 表示该字段具有值,而 NULL 表示相反。因此,从数据完整性的角度来看,前者是正确的。
你能做到两全其美吗?