在插入数据库的时候可空值类型的问题

今天做一个三层项目,在后台更新用户信息,碰到了一个可空值类型的问题:LockDataTime,TestInt都是可以为空的,这个时候我们就要用到 DateTime?  int? 这种可空值类型的用法了,现在我来总结一下它在三层项目中的使用:

Model文件里:声明可以为空

      public DateTime? Lockdatatime
        {
            get;
            set;
        }
        public int? Testint
        {
            get;
            set;
        }

DAL文件:

读取数据到model里:

 tseat.Lockdatatime = reader.IsDBNull(5) ? null : (DateTime?)reader.GetDateTime(5);
 tseat.Testint = reader.IsDBNull(6) ? null : (int?)reader.GetInt32(6);

//在数据库里判断是否为空?(三元运算)为空就赋值一个null,不为空就取对应的值,null与object不能隐式转换,所以前面要加个DateTime?的一个可空值类型的判断。

UI层:

判断是否为空,如果是空就赋值为null,不为空就赋值相应的值。

txterrotims.Text = seate.Erroetimes == null ? null : seate.Erroetimes.ToString();
 txttestint.Text = seate.Testint == null ? null : seate.Testint.ToString();

 就这样解决了一个数据库里可空值的问题.

 

 

 

 

你可能感兴趣的:(数据库)