DBNull的Eval检查不起作用

时间:2011-03-07 19:30:24

标签: c# asp.net eval

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

显示总是'notempty',即使在DB中的该字段中存在null(varchar()的类型,null) ... 试图检查空字符串:

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

它总是会显示出来......这里有什么问题?

3 个答案:

答案 0 :(得分:15)

DBNull.Valuenull之间存在差异。该字段可能正在返回null

尝试

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

此外,如果字段值类型应该是字符串,那么您可以按照..

的方式执行某些操作
<%# (Eval("Description") as string) ?? "empty" %>

答案 1 :(得分:4)

您是否尝试过使用此方法:

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

答案 2 :(得分:4)

实际上并没有将DBNull存储在此级别。您需要查找null或空字符串string.IsNullOrEmpty应该足够并且将捕获null的状态并清空。

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