zoukankan      html  css  js  c++  java
  • 无法将 DBNull.Value 强制转换为类型“System.DateTime”。请使用可空类型

    取数据库中的数据时,数据库中的字段有可能是空值,虽然Linq中的Field方法和SetField方法都可以处理可以为 null 的类型,不必像前面的示例那样检查 Null 值,我们再用Field将一些可空的值赋给实体的属性时,有可能会报错,因为实体的属性是可空类型,例如:

    角色(SmRole)实体有如下可空类型的创建时间的属性

    public virtual DateTime? Createdtime
    {
       get { return _createdtime; }
       set { _bIsChanged |= (_createdtime != value); _createdtime = value; }   
    }
    
     
    
    //dsRole为数据集
    
    var roleAllDs =
         from role in dsRole.Tables[0].AsEnumerable()
         select role;
    
     
    
    //创建SmRole实体对象
    
    SmRole smrole = new SmRole();
    
    //遍历数据
    
    foreach (var  r in roleAllDs)//dsRole.Tables[0].Rows
    {
    
      //...
    
      //smrole.Createdtime = r.Field<DateTime>("CREATEDTIME");
    
      //如上这样取值就会报标题所示的异常,应该改为可空类型,正确的如下
    
      smrole.Createdtime = r.Field<DateTime?>("CREATEDTIME");//加上可空标识
    
      //...
    
    }
    

    https://www.cnblogs.com/vihone/archive/2010/06/04/1751424.html

  • 相关阅读:
    杂项
    hdu 2094
    hdu acm 1004
    android 重装sdk或者系统的时模拟器出现can open ****
    使用Java模拟操作系统高优先级算法
    各种语法解释及用法
    枚举与结构
    闭包
    socket
    异常
  • 原文地址:https://www.cnblogs.com/TTonly/p/11250221.html
Copyright © 2011-2022 走看看