<%# Eval("Description") == DBNull.Value ? "empty" : "notempty"%>
總是顯露出一個「NotEmpty」甚至有在該領域零的DB(varchar類型(的),NULL) ... 也試過檢查空字符串:評估和演示支票的DBNull不工作
<%# Eval("Description") == "" ? "empty" : "notempty"%>
它總是顯示notempty ...這裏有什麼錯?
<%# Eval("Description") == DBNull.Value ? "empty" : "notempty"%>
總是顯露出一個「NotEmpty」甚至有在該領域零的DB(varchar類型(的),NULL) ... 也試過檢查空字符串:評估和演示支票的DBNull不工作
<%# Eval("Description") == "" ? "empty" : "notempty"%>
它總是顯示notempty ...這裏有什麼錯?
DBNull.Value
與null
之間的差異。有可能該字段正在返回null
。
嘗試
<%# Eval("Description") == null ? "empty" : "notempty"%>
此外,如果字段值類型應該是字符串,你可以做線沿線的東西..
<%# (Eval("Description") as string) ?? "empty" %>
您是否嘗試過使用這種方法:
<%# Convert.IsDBNull(Eval("Description") ? "empty" : "notempty"%>
將此模式與'String.IsNullOrWhitespace()'結合起來,並且解決方案很有效 – GoldBishop 2017-05-31 12:54:40
它實際上並不存儲DBNull
在這個級別。你需要尋找null
或空字符串,其中string.IsNullOrEmpty
應該是足夠的,並將捕獲null
和空的兩個狀態。
<%# string.IsNullOrEmpty(Eval("Description").ToString()) ? "empty" : "notempty"%>
如果description爲null,則它將爲空引用錯誤.ToString() – 2011-03-08 16:53:32
'as string'would be working in the case – 2011-03-08 16:53:57
這個工作,你能不能解釋我有什麼不同?謝謝 !! – 2011-03-07 19:36:46
@Stewie Griffin我認爲最基本的解釋方式是db值vs .net值。基本上'DBNull.Value'表示缺少數據庫值,其中'null'表示數據爲'null'。 – 2011-03-07 19:41:44
@QuintinRobinson Null和DBNull之間有區別。請記住,大多數SQL引擎至少具有三態值系統; .Net基於2狀態值系統。即使可空泛類型也比其他任何東西都更包裝。 – GoldBishop 2017-05-31 12:52:17