设置ASP.net MVC模型类int,string& DateTime值到dbnull

时间:2017-05-10 13:04:24

标签: c# asp.net asp.net-mvc dbnull

嘿所有我试图将 DBNull 分配给int类值,如下所示:

namespace ETTData.Models
{
    public class CHeld
    {
        public class AdNo {
            public int RequestID { get; set; } = DBNull.Value;

            public string TLead { get; set; } = DBNull.Value;

            public DateTime RequestDate { get; set; } = DBNull.Value;
        }
    }
}

但是,我得到的错误是:

  

错误CS0029无法将类型'System.DBNull'隐式转换为'int'ETTData

     

错误CS0029无法将类型'System.DBNull'隐式转换为'string'ETTData

     

错误CS0037无法将null转换为'DateTime',因为它是不可为空的值类型

在执行 DateTime 字符串 varibles时,这似乎也是个问题?

为了让它发挥作用我会缺少什么?

2 个答案:

答案 0 :(得分:1)

您好,为什么要尝试将db null值放入模型类?

如果您不希望属性接收空值,则可以使用?使您的类型可以为空。

 public int? RequestID { get; set; }
 public string TLead { get; set; }
 public DateTime? RequestDate { get; set; }

希望这有帮助。

答案 1 :(得分:1)

您只能将DBNull用于接受它作为有效值的类型 - 内置类型不会 - 您也不能自己创建任何类型 - 无法从DBNull派生类/结构 - 它是密封的,所以不能继承。

您需要将null用于可以在DB中处于可为空的属性(以及不能为null的模型结构类型,例如int为nullables - int?)。

保存到数据库时,请检查这些是否为null,如果是,请将DBNull传入您的数据库。

相关问题