読者です 読者をやめる 読者になる 読者になる

ASP.NETの連結式内での条件判定

ASP .NET

GridViewでデータバインドして、Eval値を表示させたい場合。
特にテンプレートなどで連結式を書いている時に、

 型 'DBNull' から型 'Boolean' への変換は無効です。

というエラーが出るときが。

DBNullの場合は他の値を表示させたい!
そんなとき、ifは使えないけれど、三項演算子が使えるみたい。
下の例は、Nullの場合にFalseを返す。

VB.NET
IIF(Eval("hoge"), False, Eval("hoge"))
C#
(Eval("hoge") == System.DBNull)? False: Eval("hoge")

複数の箇所で書く場合には、メソッドを書いてあげればいいのかな。
SQLで調整できる場合もありそう。