当前位置: 代码迷 >> ASP.NET >> 如果 DAL层 数据类型转化异常怎么处理
  详细解决方案

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

热度:9925   发布时间:2013-02-25 00:00:00.0
如果 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"]);
  相关解决方案