Tom*_*icz 2 asp.net string dbnull casting
嘿伙计们,我数据库中的一个表有一个字段"描述",允许'Nulls'.这在ASP.NET中呈现页面时会出现问题,因为我想确保我将字符串解码为数据库中的字符串,因为我正在编写它.当然,描述中有一些NULL.我希望保留的字段.
所以我的ASP.NET页面有这个代码
<asp:TextBox ID="DescInfo" Text='<%# HttpUtility.HtmlDecode((string)Eval("Description")) %>' />
Run Code Online (Sandbox Code Playgroud)
所以当我渲染页面时,我会得到:
Unable to cast object of type 'System.DBNull' to type 'System.String'.
Run Code Online (Sandbox Code Playgroud)
我看待它的方式,我有两个选择:
要么
任何人都有更好的想法吗?
虽然DBNull
无法强制转换为字符串,但它确实有一个ToString()
返回空字符串的方法.我可能会这样做:
<%# HttpUtility.HtmlDecode(Eval("Description").ToString()) %>
Run Code Online (Sandbox Code Playgroud)
这样你就不必测试DBNull
或任何东西.String.ToString()
只返回字符串,并DBNull.ToString()
返回一个空字符串.这也具有仅Eval
每行调用一次而不是两次的优点.唯一可能让你失望的是你的数据包含null
和DBNull
(你不能调用ToString,null
但你可以开启DBNull
),但我不认为在这种情况下实际上是可行的.