どちらのアプローチを使用するのが良いですか:
BoundField.NullDisplayText
設定されていません。NULL-ケースはSQLクエリで予測されます。SELECT ISNULL(amount, 0) FROM table
また
BoundField.NullDisplayText
が設定されます(例:「0.00%」)。NULL-SQLクエリでは大文字と小文字は区別されません。SELECT amount FROM table
どう思いますか?
ISNULLでフィルタリングするため、明らかに最初のものです。
私は2番目の選択肢がより良いと主張します。一般に、データベースではなく、中間層またはプレゼンテーション層で出力をフォーマットすることをお勧めします。したがって、データ層コードの上の層にnullを返し、データベースで選択するのではなく、表示について何をするかを決定してもらいたいと思います。
nullをゼロに変換することにより、クエリを使用するすべてのシステムで、nullはユーザーが意図的にゼロを入力したことと同じであると述べていることになります。それが実際に当てはまる場合は、問題ありません。IsNullの代わりにCoalesceを使用して、nullをゼロに変換します。ただし、クエリが再利用される可能性が最も低く、値がない場合はゼロの入力とは異なる方法で処理される可能性がある場合は、中間層にnullを返し、それに対して何をするかを決定させます。 。
違いは、0.00はフィールドに値があることを意味し、NULLはその反対を意味することです。したがって、データの健全性の観点からは、前者が正しいです。
あなたは両方の最善を尽くすことができますか?