发布网友 发布时间:2022-04-30 07:42
共3个回答
懂视网 时间:2022-04-30 12:03
1. Null不是0、不是空,是"不知道"。数据库中int是可以为null的,但是C#中int不可以为null,存在一个不匹配的问题。
2. 介绍"可控数据类型",string、Person(引用类型)等是可null的,但是int、bool、datetime(值类型)
是不可为null,在不可空类型后加"?"就是可空类型了,HasValue、Value。
3. DBNull和null的区别:如果值为null,直接写null的话用SqlParameter提交到服务器上是报错的,需要写DBNull.Value:new SqlParameter("Id"model.Id==null?(Object)DBNull.Value:model.Id)。三元运算符冒号两边的值类型相同或者有继承关系。
4. int x=n??10;
????这句话的意思是,如果n=null,那么x=10,否则x=n
和下面的意思一样:
????int x=n==null?10:n;
DBNull
标签:
热心网友 时间:2022-04-30 09:11
简单来说,null是C#中的,DBNull是数据库中的。虽然都代表null的意思,但DBNull仅在数据库中有效,对于C#看来它不是空值。追答代码里最好用 IsDBNull/IsNull 或类似的函数判断,一般有函数,直接!=null是不行的。
热心网友 时间:2022-04-30 10:29
貌似是一样