DBNull在DotNet是单独的一个类型 System.DBNull 。它只有一个值 DBNull.Value 。DBNull 直接继承 Object 。
你可以用Convert.IsDBNull来判断一个值是否DBNull。注意Convert.IsDBNull(null)是false。
Sql Server 2000 中的数据表如下:
select * from Ele_Count
--结果如下:
TbNo 上月表底 本月表底 CT比 Month
---------- ----------- ----------- ---------- ------
电表1 100 125 300/5 200511
电表2 200 NULL 300/5 200511
我需要在.Net的DataGrid里用一个模板列去绑定这样一个数据:"本月表底-上月表底"
在数据库中这两个字段都是int类型,但是允许为空!所以首先.Net里需要转换为int类型。
但是如果字段值为空,那肯定是转换不过去。所以需要先判断
如下代码:
你可以用Convert.IsDBNull来判断一个值是否DBNull。注意Convert.IsDBNull(null)是false。
Sql Server 2000 中的数据表如下:
select * from Ele_Count
--结果如下:
TbNo 上月表底 本月表底 CT比 Month
---------- ----------- ----------- ---------- ------
电表1 100 125 300/5 200511
电表2 200 NULL 300/5 200511
我需要在.Net的DataGrid里用一个模板列去绑定这样一个数据:"本月表底-上月表底"
在数据库中这两个字段都是int类型,但是允许为空!所以首先.Net里需要转换为int类型。
但是如果字段值为空,那肯定是转换不过去。所以需要先判断
如下代码:
<asp:TemplateColumn HeaderText="走字">
<ItemTemplate>
<asp:Label id="Label1" runat="server">
<%# Convert.IsDBNull(DataBinder.Eval(Container, "DataItem.CruNumber")) ? 0 : (Convert.ToInt32(DataBinder.Eval(Container, "DataItem.CruNumber"))-Convert.ToInt32(DataBinder.Eval(Container, "DataItem.PreNumber")))%>
</asp:Label>
</ItemTemplate>
<ItemTemplate>
<asp:Label id="Label1" runat="server">
<%# Convert.IsDBNull(DataBinder.Eval(Container, "DataItem.CruNumber")) ? 0 : (Convert.ToInt32(DataBinder.Eval(Container, "DataItem.CruNumber"))-Convert.ToInt32(DataBinder.Eval(Container, "DataItem.PreNumber")))%>
</asp:Label>
</ItemTemplate>