<%# Eval("Description") == DBNull.Value ? "empty" : "notempty"%>
即使在数据库中该字段为空(类型为varchar(),null),也始终显示“notempty”。 ... 还尝试检查空字符串:
<%# Eval("Description") == "" ? "empty" : "notempty"%>
它总是显示为非空值...这里出了什么问题?
DBNull.Value
和 null
是有区别的。可能字段返回的是 null
。
尝试进行以下操作:
<%# Eval("Description") == null ? "empty" : "notempty"%>
如果字段值类型应该是字符串,你可以这样做...
<%# (Eval("Description") as string) ?? "empty" %>
<%# Convert.IsDBNull(Eval("Description") ? "empty" : "notempty"%>
String.IsNullOrWhitespace()
结合使用,解决方案就很可靠。 - GoldBishop实际上,它并没有在这个级别存储 DBNull
。您需要查找 null
或空字符串,使用 string.IsNullOrEmpty
应该足够,它可以捕获 null
和空的两种状态。
<%# string.IsNullOrEmpty(Eval("Description").ToString()) ? "empty" : "notempty"%>
DBNull.Value
表示缺少的数据库值,而null
表示为空的数据。 - Quintin Robinson