读书人

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

发布时间: 2012-05-16 23:40:10 作者: rapoo

如果 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"]); 

读书人网 >asp.net

热点推荐