首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

如果 DAL层 数据类型转化异常怎么处理

2012-05-16 
如果 DAL层 数据类型转化错误怎么办?假如在DAL层中有这样的代码:House house new House(HouseId)SqlDat

如果 DAL层 数据类型转化错误怎么办?
假如在DAL层中有这样的代码:
House house = new House(HouseId);
SqlDataReader reader = ...........

house.ExpiredDate = Convert.ToDateTime(reader["ExpiredDate"]);

那么因为reader["ExpiredDate"]为dbnull, 或者ExpiredDate干脆就不是日期型的,比如在数据库端错误的设置为字符串型的。 

所以在执行Convert.ToDateTime(reader["ExpiredDate"])这里就会出错。  

那么BLL层只有捕获到这个错误,进而展现给UI层吗

[解决办法]
可以自己扩展一个容错的方法,如果是正确的时间类型的数据就返回正确的值,如果不是就返回一个空的DateTime类型的结构:

C# code
       public static DateTime GetDateTime(object obj)        {            return obj == null || obj == DBNull.Value ? new DateTime() : Convert.ToDateTime(obj);        }DateTime dt = GetDateTime(reader["ExpiredDate"]); 

热点排行