Stewie Griffin
Stewie Griffin

Reputation: 9317

Eval check for DBNull doesnt work

<%# Eval("Description") == DBNull.Value ? "empty" : "notempty"%>

is showing always 'notempty' even there is null in that field in DB (type of varchar(), null) ... Tried also checking for empty string:

<%# Eval("Description") == "" ? "empty" : "notempty"%>

and it always displays notempty... what's wrong here??

Upvotes: 4

Views: 20408

Answers (3)

Kelsey
Kelsey

Reputation: 47726

It is not actually storing DBNull at this level. You need to look for null or an empty string which string.IsNullOrEmpty should be enough and will capture both states of null and empty.

<%# string.IsNullOrEmpty(Eval("Description").ToString()) ? "empty" : "notempty"%>  

Upvotes: 4

Abe Miessler
Abe Miessler

Reputation: 85056

Have you tried using this method:

<%# Convert.IsDBNull(Eval("Description") ? "empty" : "notempty"%>

Upvotes: 5

Quintin Robinson
Quintin Robinson

Reputation: 82335

There is a difference between DBNull.Value and null. It is possible the field is returning null.

Try

<%# Eval("Description") == null ? "empty" : "notempty"%>

Also if the field value type is supposed to be string you could do something along the lines of..

<%# (Eval("Description") as string) ?? "empty" %>

Upvotes: 16

Related Questions